pkill과 killall의 차이점은 무엇입니까?


49

pkill그보다 더 많은 필터링 규칙이 있다는 것을 알고 killall있습니다. 내 질문은, 차이점은 무엇입니까?

pkill [signal] name

killall [signal] name

나는 그것이 killall더 효과적 이라는 것을 읽었 으며 name프로그램 과 일치하는 모든 프로세스와 하위 프로세스 (및 재귀 적으로)를 죽 입니다. pkill이것도하지 않습니까?


답변:


46

pgreppkill유틸리티로, 썬의 솔라리스 7에 도입 된 g33klord가 언급 한 , 그들은 실행중인 프로세스의 이름에 대해 일치 인수로 패턴을. pgrep일치하는 프로세스 목록을 인쇄하는 동안 pkill지정된 신호 (또는 SIGTERM기본적으로)를 프로세스에 보냅니다 . 일반적인 옵션 사이 의미 pgrep하고 pkill당신이 조심하고 처음으로 목록 매칭 프로세스를 검토 할 때 유용는 pgrep다음과 그들을 죽일 진행합니다 pkill. pgreppkill상기에서 제공하는 procps의의 다른 제공하는 패키지 /proc와 같은 파일 시스템 유틸리티, ps, top, free, uptime다른 사람의 사이를.

killall명령은 psmisc 패키지에 의해 제공되며 pkill기본적으로 프로세스 신호를 전송할 때 결정될 때 인수 이름과 정확히 일치합니다 (최초 15 자까지) 와 다릅니다 . -e, --exact옵션은 15 자보다 긴 이름을 정확히 일치를 필요로 지정 될 수 있습니다. 이것에 killall비해 사용하기 가 다소 안전합니다 pkill. 지정된 인수에 슬래시 ( /) 문자 가 포함 된 경우 인수는 파일 이름으로 해석되고 해당 특정 파일을 실행하는 프로세스가 신호 수신자로 선택됩니다. killall또한 -r, --regexp옵션을 통해 프로세스 이름의 정규식 일치를 지원합니다 .

다른 차이점도 있습니다. killall예를 들어 명령 (나이 프로세스를 일치시키기위한 옵션이 있습니다 -o, --older-than그리고 -y, --younger-than동안) pkill만합니다 (통해 특정 터미널에서 프로세스를 죽일 말 할 수 있습니다 -t옵션을). 분명히 두 명령에는 특정 틈새가 있습니다.

있습니다 killall시스템의 명령에서 자손 유닉스 시스템 V (특히 썬의 솔라리스 , IBM의 AIXHP의 HP-UX가 ) 죽이고 모든 루트로 실행하면 효율적으로 시스템을 종료, 특정 사용자에 의해 killable 프로세스를.

Linux psmisc 유틸리티는 BSD (및 확장 Mac OS X ) 로 포팅 되었으므로 killall"이름 별 킬 프로세스"시맨틱을 따릅니다.


내가 만난 가장 큰 차이점은 사용자가 패턴 명령을 중지 killall -u <username> -r <process>하거나 pkill <process> -U <uid>사용 killall하기가 훨씬 쉽다는 것입니다.
jeremysprofile

13

pkill언급 한 필터와 재사용 성이 높은 필터 덕분에 미래 세대를 가르 칠 가치가 pgrep있습니다. 프로세스를 같은 방식으로 종료하고 재귀 적으로 종료하지는 않습니다. 그러나 pgrep세션별로 (tty 당, setsid를 생각) 또는 프로세스 그룹 (작업 제어를 고려)으로 선택할 수 있습니다.


8

한 가지 차이점은 killall정확한 프로세스 이름을 인수로 사용하는 반면 pkill부분 또는 전체 이름을 사용할 수 있다는 것입니다.

이 질문 을 참조 하여 pkill에 대해 자세히 알 수 있습니다.


1

killall-이름으로 프로세스를 종료하십시오. killall명령 이름, 특정 사용자가 소유 한 프로세스 또는 모든 시스템 전체 프로세스와 같은 선택 기준과 일치하는 하나 이상의 프로세스에 신호를 보내 려면 명령을 사용하십시오 .

pkill-지정된 신호 (기본적으로 SIGTERM)를 표준 프로세스에 나열하는 대신 각 프로세스에 보냅니다. pkill와 같은 여러 프로세스에 신호를 보낼 수 killall있지만 다음 과 같은 조합을 포함 할 수있는 고급 선택 기준을 사용할 수도 있습니다.

명령 UID 부모 터미널

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.