나는 kill명령에 대해 잘 알고 있으며 , 대부분 강제로 프로세스를 강제 종료하기 위해 kill -9를 사용하는데 사용할 수있는 다른 많은 신호가있다 kill. 그러나 kill 명령이 이미 있다면 pkilland 의 사용 사례가 무엇인지 궁금합니다 killall.
수행 pkill및 killall사용 kill구현에 명령을? 나는 그것들이 단지 랩퍼 kill이거나 자신의 구현을 가지고 있다는 것을 의미 합니까?
또한 pgrep명령이 프로세스 이름에서 프로세스 ID를 얻는 방법을 알고 싶습니다 .  
이 모든 명령이 동일한 기본 시스템 호출을 사용합니까? 성능 관점에서 어떤 것이 더 빠릅니까?
답변
이 kill명령은 kill 시스템 호출에 대한 매우 간단한 래퍼 이며 프로세스 ID (PID)에 대해서만 알고 있습니다. pkill그리고 killall또한에 래퍼 kill 시스템 호출 , (실제로, 직접 시스템 호출을 호출하는 libc의 라이브러리),하지만 등 프로세스 이름, 프로세스의 소유자, 세션 ID, 등을 기준으로 당신을위한 PID를을 확인할 수 있습니다
사용 하거나 작업 하는 방법 pkill과 killall작업을 볼 수 있습니다 . Linux에서는 파일 시스템을 통해 읽고 , 찾은 각 pid (디렉토리)에 대해 프로세스 이름 또는 기타 속성으로 프로세스를 식별하는 방식으로 경로를 탐색합니다. 이 작업은 기술적으로, 커널 및 시스템에 따라 다릅니다. 일반적으로 명령 이름이 두 번째 필드로 포함되어 있습니다. 들어 와은 조사 각 PID의 PROC 항목에 대한 항목을.ltracestrace/proc/proc/<PID>/statpkill -fpgrep/cmdline
pkill그리고 pgrep사용 readproc하는 반면, 시스템 호출을 killall하지 않습니다. 성능 차이가 있는지 말할 수 없었습니다. 스스로 벤치마킹해야합니다.
답변
kill 및 killall은 프로세스를 종료하는 방법을 제공하는 도구입니다. 첫 번째는 PID, 두 번째는 이름입니다. pgrep (list) 및 pkill (기본적으로 kill)은 이름 또는 기타 속성으로 프로세스에 메시지를 보내는 방법을 제공하는 도구입니다. http://linux.die.net/man/1/pkill
자세한 정보 신호 : http://linux.die.net/man/7/signal