PID가 계속 변경되면 프로세스 종료

PID가 계속 변경되면 프로세스 종료

내가 발행할 때

ps aux | grep mtp

알겠어요

우분투-+ 15934 0.1 0.0 519848 7068? 21:13 0:00 /usr/lib/gvfs/gvfsd-mtp --spawner :1.9 /org/gtk/gvfs/exec_spaw/20

따라서 이 예의 PID는 15934입니다. 그러나 실행할 때마다 PID가 달라집니다. PID 외에 프로세스를 종료하는 다른 방법이 있습니까?

답변1

하위 프로세스를 종료하고 새 하위 프로세스를 분기하는 상위 프로세스가 있을 수 있습니다. pstree를 사용하여 상위 프로세스를 찾을 수 있습니다.

pgrep mtp | xargs -i pstree -ps {}

또는 ps의 ppid 옵션을 사용할 수 있습니다.

pgrep mtp | while read line; do ps -p $line -o ppid; done

그런 다음 상위 프로세스를 종료할 수 있습니다.

답변2

변경 프로세스를 종료하려면 동적으로 종료할 수 있습니다.

pkill name_of_process

또는

kill -kill $(ps -A | grep name_of_process | awk '{print $1}')

여기에서 Kill에 대해 자세히 알아보세요.https://www.thegeekstuff.com/2009/12/4-ways-to-kill-a-process-kill-killall-pkill-xkill/

노트:grep 또는 sed로 수행되는 검색은 대소문자를 구분하므로 이러한 예제를 사용하여 특정 프로세스를 종료하기 전에 PID가 아닌 고유 식별자로 범위를 좁혀야 합니다.

프로세스의 상위 프로세스를 동적으로 찾으려면 다음을 수행할 수 있습니다.

ps -o ppid=$(ps -A | grep name_of_process | awk '{print $1}')

PPID가 있으므로 거기에서 상위 프로세스를 종료할 수 있습니다.

상위 프로세스를 종료할 수 없는 경우 첫 번째 해결 방법을 사용해야 합니다. 문제는 프로세스의 PID가 생각보다 빨리 변경되는 경우가 있다는 것입니다. 이 경우 Grep 대신 Sed를 사용할 수 있습니다. 첫 번째 예는 다음과 같습니다.

kill -kill $(ps -A | sed '/name_of_process/!d' | awk '{print $1}')

작업 속도를 더욱 높이려면 다음 사항을 연마해야 할 수도 있습니다.메모이 명령은 other 플래그를 사용하여 other 결과를 반환합니다.-ㅏ. ps 매뉴얼 페이지를 확인하십시오.

https://www.man7.org/linux/man-pages/man1/ps.1.html

때로는 데몬의 도움으로 프로세스가 계속 실행되는 경우도 있습니다. 당신도 그것을 죽일 수 있는지 확인하십시오.

고려해야 할 두 가지 다른 사항은 다음과 같습니다.프로세스와 연관된 터미널또는그들 모두를 죽일주문하다.

https://linoxy.com/linux-command/linux-killall-my-options/

답변3

pkill mtp를 사용하거나 kill -9를 사용할 수 있습니다.pidof mtp

mtp 프로세스가 여러 개인 경우 두 명령 모두 시스템의 모든 mtp 프로세스를 종료합니다.

라미 로젠

답변4

pkill프로세스를 시작한 명령의 이름을 기준으로 시작할 수 있습니다( ps aux출력의 마지막/11번째 열).

sudo pkill -9 -f COMMAND_STARTING_THE_PROCESS*

귀하의 경우 프로세스를 시작하는 명령은 다음과 같습니다.

/usr/lib/gvfs/gvfsd-mtp --spawner :1.9 /org/gtk/gvfs/exec_spaw/20

여기에 이미지 설명을 입력하세요.

당신은 죽일 수 있습니다스크립트 시작과 관련된 모든 프로세스gvfsd-mtp그리고

sudo pkill -9 -f /usr/lib/gvfs/gvfsd-mtp*

참고: 반드시 사용해야 합니다 sudo!

관련 정보