[shell] 이름과 일치하는 모든 프로세스를 종료하는 방법은 무엇입니까?

아마로라는 단어가 포함 된 모든 프로세스를 죽이고 싶다고 가정 해 봅시다. 실행하려는 명령을 인쇄 할 수 있습니다. 그러나 실제로 쉘이 어떻게 실행하도록합니까? 즉.

ps aux | grep -ie amarok | awk '{print "kill -9 " $2}'
Output:
kill -9 3052
kill -9 3071
kill -9 3076
kill -9 3077
kill -9 3079
kill -9 3080
kill -9 3082
kill -9 3083
kill -9 3084
kill -9 3085
kill -9 3086
kill -9 3087
kill -9 3088
kill -9 3089
kill -9 4031



답변

에서 man 1 pkill

-f     The pattern is normally only matched against the process name.
       When -f is set, the full command line is used.

예를 들어 다음과 같은 줄을 보면 ps aux:

apache   24268  0.0  2.6 388152 27116 ?        S    Jun13   0:10 /usr/sbin/httpd
apache   24272  0.0  2.6 387944 27104 ?        S    Jun13   0:09 /usr/sbin/httpd
apache   24319  0.0  2.6 387884 27316 ?        S    Jun15   0:04 /usr/sbin/httpd

pkill -f옵션을 사용하여 모두 죽일 수 있습니다.

pkill -f httpd


답변

ps aux | grep -ie amarok | awk '{print $2}' | xargs kill -9 

xargs (1) : xargs-인수 목록을 구성하고 유틸리티를 실행합니다. 도움 당신은 같은 인수에 파이프 할 때 kill또는 ls정도에.


답변

사용하다 pgrep

kill -9 $(pgrep amarok)


답변

이를 수행하는 안전한 방법은 다음과 같습니다.

pkill -f amarok


답변

이 명령 killall이 정확히 필요한 것 같습니다. 이 명령은 “이름 별 킬 프로세스”라고하며 사용하기 쉽습니다.

killall chrome

이 명령은 Chrome의 모든 프로세스를 종료합니다. 다음은 killall 명령에 대한 링크입니다.

http://linux.about.com/library/cmd/blcmdl1_killall.htm

이 명령이 도움이 되길 바랍니다.


답변

pkill -x는 프로세스 이름과 정확히 일치합니다.

pkill -x amarok

pkill -f는 비슷하지만 정규 표현식 패턴을 허용합니다.

다른 매개 변수가없는 pkill (예 : -x, -f)은 프로세스 이름에서 부분 일치를 허용합니다. 따라서 “pkill amarok”은 amarok, amarokBanana, bananaamarok 등을 죽입니다.

-x가 기본 동작이기를 바란다!


답변

명령의 출력을 실행하려면 명령을 안에 넣을 수 $(...)있지만 특정 작업의 경우 killallpkill명령을 살펴보십시오 .