Linux
如何使用程序名稱而不是 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 自動更改了..
所以我不確定如何殺死這個程序?
有什麼辦法可以以某種方式終止該名稱的程序嗎?
我試過了
killall zook.py
但這對我不起作用,我得到-
zook.py: no process found
還有其他選擇嗎?不知何故,它的PID每次都在改變..所以我不能使用
kill -9 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
如果您查看該 PID 右側的內容,您可能會注意到它是 grep 的 PID 查找您的搜尋字元串。這就是為什麼它每次都不一樣。當你從 grep 得到你的 shell 時,grep 當然已經消失了。
如果您的程序仍在執行,您會發現您的程序使用不同的名稱。試試吧
ps ax | grep python
,或者更好,pgrep python
如果你有的話。
要為該過程執行 grep,您可以使用
ps ax|grep name|grep -v grep
這將擺脫 grep 命令,但是如果您的腳本名稱未顯示,您可能必須執行 ps axw 以獲得更長的命令行。
ps axww|grep name|grep -v grep