如何使用程序名称而不是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