首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用程序名而不是PID来终止进程?

如何使用程序名而不是PID来终止进程?
EN

Server Fault用户
提问于 2013-12-28 05:54:08
回答 2查看 3.6K关注 0票数 0

我在后台使用nohup启动我的Python程序,如下所述-

代码语言:javascript
复制
nohup zook.py &

现在我试图终止这个过程,所以我执行了ps命令,如下所述

代码语言:javascript
复制
root@phxdbx1145:/home/david/zook# ps ax | grep zook.py
16352 pts/6    S+     0:00 grep --color=auto zook.py

但不知怎么的,每次PID变了,我都不知道为什么。不管我什么时候喜欢-

代码语言:javascript
复制
kill -9 16352

它总是说,No Such Process

当我再次执行px命令时,我看到PID被自动改变了。

所以我不知道我该如何扼杀这个过程?

我有什么办法用这个名字消灭这个过程吗?

我试过

killall zook.py

但这对我不起作用,我得到-

代码语言:javascript
复制
zook.py: no process found

还有其他选择吗?不知为什么每次它的PID都变了..。所以我不能使用kill -9 pid

更新:-

这就是我要得到的。我执行了pkill -9 zook.py,然后执行了ps命令,如下所述,它不断地缩小zook.py?

代码语言:javascript
复制
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
EN

回答 2

Server Fault用户

回答已采纳

发布于 2013-12-28 06:12:55

如果您查看PID的右边是什么,您可能会注意到,它是grep的PID,查找您的搜索字符串。这就是为什么每次都不同的原因。当然,当您从grep返回shell时,grep已经消失了。

如果进程仍在运行,您将发现它以不同的名称运行。尝试ps ax | grep python,或者更好的是,如果你有pgrep python的话。

票数 5
EN

Server Fault用户

发布于 2013-12-28 14:56:12

要为进程执行grep,可以使用

代码语言:javascript
复制
ps ax|grep name|grep -v grep

这将消除grep命令,但是如果没有显示脚本名,您可能必须执行ps axw才能获得更长的命令行。

代码语言:javascript
复制
ps axww|grep name|grep -v grep
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/563873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档