Bash 如何获取运行cygwin的进程的Windows PPID?

Bash 如何获取运行cygwin的进程的Windows PPID?,bash,cygwin,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 ?

我需要杀死由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的子进程

我还读了


这让我很不安,难道没有办法实现吗?

因为你需要杀死一个非cygwin进程,所以最好使用 windows特定程序

一个例子是:


问题在于您使用的是Windows,Windows在历史上不承认进程的“父级”。Windows进程只有在关闭对该进程打开的所有句柄后才会关闭,而具有必要权限的任何其他进程都可以获得该进程的句柄。您不能期望在外来操作系统上使用UNIX体系结构习惯用法。