如何杀死在Cygwin的一个过程?(How to kill a process in cygwin?

2019-07-29 17:03发布

嗨,我有以下的过程,我不能杀:

我在Windows XP 32位运行cygwin的。

我曾尝试发出以下命令:

/bin/kill -f 4760
/bin/kill -9 5000
kill -9 5000
kill 5000

当我写/斌/杀-f 4760我得到的消息,“杀:无法打开PID 4760”。

当我写/斌/杀-9 5000我得到的消息,“杀:5000:没有这样的过程”。

我只是不明白为什么这个过程中不能被杀死。 因为它有一个WINID不应该是由/ bin中丧生/杀-f 4760?

希望有人能帮助THX :)

Answer 1:

这个过程从Windows最有可能被锁定。 你所得到的错误“不可能开PID XXX”指向这一点。 为了证实尝试使用Windows的taskkill杀死它

    taskkill /PID 4760


Answer 2:

奇怪的是,在Cygwin的以下工作:

echo PID1 PID2 PID3 | xargs kill -f

例如:

ps -W | grep WindowsPooPoo | awk '{print $1}' | while read line; do echo $line | xargs kill -f; done;


Answer 3:

不同的Windows程序将处理该信号kill发送不同; 他们从来没有被设计在了同样的方式,Linux的/ Cygwin的程序来对付他们。

杀死一个Windows程序的唯一可靠的方法是使用Windows特定的工具,比如任务管理器或Process Explorer。

这就是说,如果你没有准备好,你可能有在管理员模式下运行的Cygwin的终端运气(右键点击你的快捷方式,选择“以管理员身份运行”)。



Answer 4:

创建一个名为killall.sh这一行文件

ps -W | grep $1 | awk '{print $1}' | while read line; do echo $line | xargs kill -f; done;

然后给它执行权限。

chmod 777 killall.sh

在你的.bash_profile加入这行

alias killall="~/killall.sh"   (point it to the correct location)

然后,你只需要输入“killall [名]”



Answer 5:

通过@Donal托宾提出的方法是正确的:

kill -f <pid>

不过,我并不需要以管理员身份登录。



Answer 6:

killall.sh - 按进程名杀死。

#/bin/bash
ps -W | grep "$1" | awk '{print $1}' | xargs kill -f;

用法:

$ killall <process name>


Answer 7:

对我来说,这个命令不会在Cygwin的Windows上工作10:

$ kill -f 15916
bash: kill: (15916) - No such process

取而代之的是,你可以使用下一个命令:

$ powershell kill -f 15916
$ netstat -ano | grep ':8080' | awk '{print $5}' | xargs powershell kill -f
$ netstat -ano | grep ':8080' | awk '{print $5}' | while read pid; do powershell kill -f $pid; done;
$ netstat -ano | grep ':8080' | awk '{sub(/\r/,"",$5) ; print $5}' | while read pid; do taskkill /F /PID $pid; done;
SUCCESS: The process with PID 15916 has been terminated.


文章来源: How to kill a process in cygwin?