如何使用程序名称而不是PID来终止进程?
我在后台使用nohup
开始我的Python程序,如下所述 –
nohup zook.py &
现在我试图杀死这个过程,所以我做了如下所述的ps
命令
root@phxdbx1145:/home/david/zook# ps ax | grep zook.py 16352 pts/6 S+ 0:00 grep --color=auto zook.py
但不知何故,每当它的PID发生变化时,我都不知道为什么。 每当我喜欢这个 –
kill -9 16352
它总是说, No Such Process
。
当我再次执行px命令时,我看到PID自动更改了..
所以我不确定如何杀死这个过程?
有什么方法可以用这个名字以某种方式杀死这个过程吗?
更新: –
这就是我得到的。 我做了pkill -9 zook.py
,然后我按照下面提到的那样执行了ps命令,并且它不断地敲击zook.py?
root@dbx1145:/home/david/zook# pkill -9 zook.py root@dbx1145:/home/david/zook# ps ax | grep zook.py 23870 pts/6 S+ 0:00 grep --color=auto zook.py root@dbx1145:/home/david/zook# ps ax | grep zook.py 23872 pts/6 S+ 0:00 grep --color=auto zook.py root@dbx1145:/home/david/zook# ps ax | grep zook.py 23874 pts/6 S+ 0:00 grep --color=auto zook.py root@dbx1145:/home/david/zook# ps ax | grep zook.py 23876 pts/6 S+ 0:00 grep --color=auto zook.py
使用killall
:
killall
您的示例中的pid,即不断变化的pid,是您尝试查找PID的grep的进程ID。 这意味着你的ps和grep没有找到你正在寻找的实际过程。
尝试运行您的脚本而不使用尾随“&”,以查看它正在执行的操作。 可能是它在你身上悄然失败而实际上并没有开始。
您还可以使用破折号中的系统监视器工具查看具有进程ID的完整进程列表。
您可以使用pkill发送与kill信号相同的kill信号
Eg: pkill firefox pkill -9 firefox
你可以用xkill
杀死。 只需转到“运行”对话框( Alt + F2 ),输入xkill
,鼠标指针就会变为“x”。 指向要杀死并单击的应用程序,它将被杀死。 有时可以比加载系统监视器快得多。
基本问题是命令’ps ax | grep something’。 这总是列出’grep … something’作为过程之一,实际上是你开始的’grep’。 使用’pgrep’代替获取pid
请参阅: https : //unix.stackexchange.com/questions/74185/how-can-i-prevent-grep-from-showing-up-in-ps-results