![PID 대신 프로그램 이름을 사용하여 프로세스를 종료하는 방법은 무엇입니까?](https://rvso.com/image/623632/PID%20%EB%8C%80%EC%8B%A0%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%20%EC%9D%B4%EB%A6%84%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EB%A5%BC%20%EC%A2%85%EB%A3%8C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
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