PID 대신 프로그램 이름을 사용하여 프로세스를 종료하는 방법은 무엇입니까?

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

답변1

해당 PID 오른쪽에 있는 것이 검색 문자열을 찾는 grep의 PID임을 알 수 있습니다. 그렇기 때문에 매번 다릅니다. grep에서 쉘을 다시 얻을 때쯤이면 물론 grep도 사라지게 됩니다.

프로세스가 아직 실행 중인 경우 다른 이름으로 프로세스를 찾을 수 있습니다. 대신 시도해 보세요 . 또는 가지고 있으면 ps ax | grep python더 좋습니다 .pgrep python

답변2

프로세스에 대한 grep을 수행하려면 다음을 사용할 수 있습니다.

ps ax|grep name|grep -v grep

이렇게 하면 grep 명령이 제거되지만 스크립트 이름이 표시되지 않으면 더 긴 명령줄을 얻으려면 ps axw를 수행해야 할 것입니다.

ps axww|grep name|grep -v grep

관련 정보