Bash 如何获取运行cygwin的进程的Windows PPID?
我需要杀死由cygwin调用的程序启动的windows进程 我是这样做的: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 ?
${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体系结构习惯用法。