您好我有以下过程我无法杀死:
我在windows xp 32位运行cygwin。
我尝试发出以下命令:
/bin/kill -f 4760
/bin/kill -9 5000
kill -9 5000
kill 5000
当我写/ bin / kill -f 4760我收到消息时,'kill:无法打开pid 4760'。
当我写/ bin / kill -9 5000时,我收到消息'kill:5000:没有这样的过程'。
我根本不明白为什么这个过程不能被杀死。 因为它有一个WINID,它不应该被/ bin / kill -f 4760杀死吗?
希望有人可以帮助你:)
答案 0 :(得分:23)
最有可能锁定Windows的进程。你得到的错误“无法打开PID XXX”指向此。 要确认尝试使用Windows taskkill杀死它
taskkill /PID 4760
答案 1 :(得分:10)
奇怪的是,以下内容适用于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;
答案 2 :(得分:2)
不同的Windows程序将处理kill
以不同方式发送的信号;它们从未被设计成以与Linux / Cygwin程序相同的方式处理它们。
杀死Windows程序的唯一可靠方法是使用Windows特定工具,例如任务管理器或Process Explorer。
也就是说,如果您还没有,那么您可以在管理员模式下运行Cygwin终端(右键单击您的快捷方式并选择"以管理员身份运行")。
答案 3 :(得分:2)
使用此行创建名为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 [name]”
答案 4 :(得分:1)
@Donal Tobin提出的方法是正确的:
kill -f <pid>
但是,我不需要以管理员身份登录。
答案 5 :(得分:1)
#/bin/bash
ps -W | grep "$1" | awk '{print $1}' | xargs kill -f;
$ killall <process name>
答案 6 :(得分:0)
对我来说,此命令不能在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.