그냥 일반 사용 후 kill <some_pid>
몇 년 동안 유닉스 시스템에서, 나는 배운 pkill
젊은 리눅스에 정통한에서 동료의 동료 1 .
나는 여러 날 밤낮으로, 느려짐과 경쟁 조건을 통해 Linux-way, pgrep
-ing 및 pkill
-ing을 곧 받아 들였다 . 이것은 모두 좋고 좋았습니다.
그러나 지금 나는 아무것도 볼 수 없습니다 killall
. How-to는 단지 언급하는 것처럼 보이며 killall
, 이것이 일종의 병렬 개발인지 또는 killall
후계자 pkill
인지 또는 다른 것이 있는지 확실하지 않습니다 .
더 타겟팅 된 것으로 보이지만 pkill
뭔가 빠진 것 같습니다.
우분투 / 데비안 정통한 2 사람이 언제 또는 왜 killall
사용되어야 하는지 , 특히 선호하는 경우 pkill
( pkill
왜냐하면 더 쉬운 것처럼 보일 때 , 적어도 기본적으로 이름 일치로 더 가파를 수 있기 때문에 ) 사용해야하는 이유를 설명 할 수 있습니까 ?
에 대해 말할 때 killall
일부 유닉스 시스템 (Solaris, AIX,?)에서 모든 사용자 프로세스를 종료시키는 명령을 생각하지 않습니다. 다음 은 IBM AIX의 맨 페이지 에서 해당 버전에 대한 설명입니다 .
killall 명령은 killall 프로세스를 생성하는 프로세스를 제외하고 시작한 모든 프로세스를 취소합니다. 이 명령은 제어하는 쉘에서 작성된 모든 프로세스를 취소하는 편리한 방법을 제공합니다. root 사용자가 시작할 때 killall 명령은 시작된 프로세스를 제외한 모든 취소 가능한 프로세스를 취소합니다. 여러 신호가 지정되면 마지막 신호 만 유효합니다.
1 ‘동료’는 ‘동료’에서 무료로 업그레이드 할 수 있습니다.
2 원래는 이것이 리눅스 나 데비안 인 줄 알았지 만 일부 소스는 리눅스 killall
가 BSD-flavored Unix에서 파생 되었다고 말합니다 .
답변
pkill은 기본 패턴 일치를 수행하는 반면 기본적으로 정확한 프로세스 이름이 필요하기 때문에 사용법에 killall이 있다고 생각합니다. 따라서 killall은 사용자가 맹목적으로 복사하여 붙여 넣기가 더 안전합니다.
Pkill과 killall 모두 고유 한 옵션이 있습니다. Killall에는 프로세스 연령별로 일치하는 플래그가 있으며 pkill에는 지정된 tty에서 프로세스 만 종료하는 플래그가 있습니다. 기타 광고 구역. 둘 다 더 나아진 것은 아니며 다른 특성을 가지고 있습니다.
필자의 매뉴얼 페이지에서 killall은 psmisc 패키지 에서 나온 것으로 여러 프로세스 관리 유틸리티가 있지만 특히 포함하지는 않습니다 ps
. ps, top, kill 및 pkill 이 포함 된 procps 패키지 입니다. 내기 procps는 원래 pkill을 가지고 있지 않았으므로 psmisc은 가려움증을 긁어 killall을 생각해 냈습니다.
pkill에 / pgrep을 man 페이지는 당신이 언급대로 그들이 솔라리스 7에 도입 말한다 jgbelacqua는 솔라리스의 killall는하지 유틸리티 가운데서도 따라서 Solaris는 아마에만 procps의 패키지를 가지고 제공했다. 누군가 패턴 일치 프로세스 도구를 원했기 때문에 pkill 및 pgrep입니다. 그것이 procps dev에 의해 개발되었거나 나중에 추가되었는지 여부는 모르겠습니다. 어쨌든, 그것은 그것을 만들어 모든 곳에서 * nixes의 일부가되었습니다.
더 많은 출처 :
답변
“killall”에주의하십시오. 어떤 시스템에서는 (나는 어느 것을 잊어 버리는가), killall은 모든 프로세스를 죽 입니다. 인수를 자동으로 무시하고 시스템을 완전히 정지시킵니다.
답변
/ etc / bash_completion을 활성화하면 after killall <part_of_process_name>
및 hit 탭-실행중인 프로세스 목록에서 프로세스 이름을 자동 완성합니다.
답변
두 프로그램 모두에서 옵션을 살펴보면 둘 다 같은 일에 대해 다른 방식으로 수행한다는 것을 알 수 있습니다.
pkill은 프로세스의 다양한 속성 (CMD, PID, PPID, UID …)에 대해 일치를 수행하고 일치하는 각 프로세스에 지정된 신호를 보냅니다. CMD의 경우 정규식이 사용되며 다른 경우에는 문자열입니다. pkill은 대화식이 아니지만 배치 프로그램에 더 좋습니다.
killall은 전체 명령 문자열이 아닌 프로세스 이름 (comm) 또는 사용자 (user)에 대해 일치를 수행합니다. 인수는 간단한 문자열로 사용되며 전체 ‘comm’값과 일치해야합니다 (이를 변경하려면 –regexp 옵션도 있음). killall에는 pkill에는없는 –interactive 및 –younger-than 옵션이 있습니다.
SysV 시절의 killall5도 있으며 우분투 패키지 ‘sysutils’아래에있는 다른 UNIX 변형으로 포팅되었습니다. 이것은 구식 방식과 다르게 작동합니다. 이것은 종종 init 스크립트 내부에서 종료되거나 단일 사용자 모드로 변경되는 데 사용되었습니다.