如何获取从cygwin用完的过程的Windows PPID?

时间:2018-08-26 16:27:33

标签: bash cygwin

我需要杀死由cygwin调用的程序启动的Windows进程。

这就是我要做的:

${wccoaDirNix}/bin/WCCILpmon.exe -proj ${projName} -user root: &

此过程将创建其他Windows过程:

$ ps -W
      PID    PPID    PGID     WINPID   TTY         UID    STIME COMMAND
     1960       1    1960       1960  ?         197609 19:21:57 /usr/bin/mintty
     7316       0       0       7316  ?              0 19:21:57 C:\Windows\System32\conhost.exe
     1700    1960    1700       1576  pty1      197609 19:21:57 /usr/bin/bash
I   10760    9840   10760       7560  pty0      197609 19:25:47 /usr/bin/bash
       32   10760   10760         32  pty0      197609 19:26:28 /cygdrive/c/Siemens/Automation/WinCC_OA/3.14/bin/WCCILpmon
     6264       0       0       6264  ?              0 19:26:28 C:\Siemens\Automation\WinCC_OA\3.14\bin\WCCILpmon.exe
     8420       0       0       8420  ?              0 19:26:29 C:\Siemens\Automation\WinCC_OA\3.14\bin\WCCILdata.exe
     6336       0       0       6336  ?              0 19:26:29 C:\Windows\System32\conhost.exe
     2808       0       0       2808  ?              0 19:26:30 C:\Siemens\Automation\WinCC_OA\3.14\bin\WCCILevent.exe
     6784       0       0       6784  ?              0 19:26:30 C:\Windows\System32\conhost.exe
     2972       0       0       2972  ?              0 19:26:30 C:\Siemens\Automation\WinCC_OA\3.14\bin\WCCOActrl.exe
    11004       0       0      11004  ?              0 19:26:30 C:\Windows\System32\conhost.exe
     9536       0       0       9536  ?              0 19:26:31 C:\Siemens\Automation\WinCC_OA\3.14\bin\WCCILsim.exe
     7372       0       0       7372  ?              0 19:26:31 C:\Windows\System32\conhost.exe
     9128       0       0       9128  ?              0 19:26:31 C:\Siemens\Automation\WinCC_OA\3.14\bin\WCCOAui.exe
     3964       0       0       3964  ?              0 19:27:48 C:\Siemens\Automation\WinCC_OA\3.14\bin\WCCILdatabg.exe

我怎么杀死他们?

我试图通过以下命令杀死它们:

ps -W | grep "WCC" | awk '{print $1}' | xargs kill -f;

但是它不能正常工作,它会杀死名称中带有字母WCС的所有进程,并且我只需要终止WCCILpmon.exe的子进程即可。

我还阅读了question on cygwinlist about same problem

这让我难过,没有办法实现吗?

1 个答案:

答案 0 :(得分:0)

由于您需要终止NOT cygwin进程,因此最好使用 Windows专用程序。

一个例子是:

https://docs.microsoft.com/en-us/sysinternals/downloads/pskill