kill 명령
용도
실행 중인 프로세스로 신호를 보냅니다.
구문
프로세스로 신호 전송
kill [ -s { 신호명 | 신호번호 } ] ProcessID...
kill [ - SignalName | - SignalNumber ] ProcessID ...
신호 이름 나열
kill -l [ ExitStatus ]
설명
kill 명령은 신호(디폴트는 SIGTERM 신호)를 실행 중인 프로세스로 전송합니다. 이 디폴트 조치는 일반적으로 프로세스를 중지합니다. 프로세스를 중지하려면 ProcessID 변수에서 프로세스 ID(PID)를 지정하십시오. 파이프라인에서 두 개 이상의 프로세스를 시작하지 않아 쉘이 마지막 프로세스의 번호를 보고하면 쉘은 백그라운드에서 실행 중인 각 프로세스의 PID를 보고합니다. Ps 명령을 사용하여 명령의 프로세스 ID 번호를 찾을 수도 있습니다.
루트 사용자는 kill 명령으로 프로세스를 중지할 수 있습니다. 루트 사용자가 아닌 경우 중지하려는 프로세스를 초기화한 상태여야 합니다.
SignalName은 SIG 접두어 없이 대소문자를 구분하지 않고 인식됩니다.
지정된 SignalNumber가 0인 경우, kill 명령은 지정된 PID(프로세스 ID)의 유효성을 점검합니다.
플래그
| 항목 | 설명 |
|---|---|
| -s{신호 이름 | 신호 번호} | 신호를 신호 번호 또는 신호 이름(예를 들어, SIGKILL 신호의 경우 -9 또는 KILL)으로 지정합니다. |
| -신호 이름 | 신호 이름(예: HUP)을 지정합니다. |
| -신호 번호 | 신호 번호를 지정합니다.참고: 이 구문에서 디폴트 신호와 함께 음수 PID를 지정하려면 - -를 신호로 지정해야 합니다. 그렇지 않으면 첫 번째 피연산자가 SignalNumber로 해석됩니다. |
| ProcessID | 신호를 보낼 프로세스 또는 프로세스 그룹을 나타내는 10진수 정수를 지정합니다. PID가 양수 값이면 kill 명령은 프로세스 ID가 PID와 동일한 프로세스를 전송합니다. PID 값이 0이면 kill 명령은 프로세스 그룹 ID가 전송자의 프로세스 그룹 ID와 동일한 모든 프로세스로 신호를 전송합니다. PID가 0 또는 1인 프로세스로는 신호가 전송되지 않습니다. PID가 -1이면 kill 명령은 전송자의 유효 사용자가 소유하는 모든 프로세스로 신호를 전송합니다. PID가 0 또는 1인 프로세스로는 신호가 전송되지 않습니다. 음수이지만 -1 아닌 경우, kill 명령은 PID의 절대값과 같은 프로세스 그룹 ID를 가진 모든 프로세스에 신호를 보냅니다. |
| -l | 구현이 지원하는 모든 신호 이름을 나열합니다. |
| -lExitStatus | 공통 SIG 접두어로 스트립되는 신호 이름을 나열합니다. ExitStatus가 10진수 값이면 해당 신호에 상응하는 신호 이름이 표시됩니다. ExitStatus가 신호에 의해 종료된 프로세스에 상응하는 종료 상태의 값인 경우, 프로세스를 종료한 신호에 상응하는 신호 이름이 표시됩니다. |
종료 상태
이 명령은 다음과 같은 종료값을 리턴합니다.
| 항목 | 설명 |
|---|---|
| 0 | 각 ProcessID 피연산자마다 최소 하나의 대응 프로세스를 찾았으며 최소 하나의 대응 프로세스에 대해 지정된 신호가 처리되었습니다. |
| >0 | 오류가 발생했습니다. |
예
- 지정된 프로세스를 중지하려면 다음 명령을 입력합니다:
이렇게 하면 프로세스가 중지됩니다1095에 기본 시그널을 보내면 됩니다. 다음 프로세스에 유의하세요1095가 시그널을 무시하거나 재정의하는 특별한 조치를 취했다면 실제로 멈추지 않을 수도 있습니다.kill 1095 - 기본 신호를 무시하는 여러 프로세스를 중지하려면 다음 명령을 입력합니다:
그러면 시그킬 신호인 신호 9가 프로세스에 전송됩니다2098및1569. 시그킬 신호는 일반적으로 무시하거나 재정의할 수 없는 특수 신호입니다.kill -kill 2098 1569 - 모든 프로세스를 중지하고 로그오프하려면 다음 명령을 입력합니다:
이 명령은 프로세스 그룹 ID가 전송자 프로세스 그룹 ID와 같은 모든 프로세스로 신호 9, SIGKILL 신호를 전송합니다. 쉘은 SIGKILL 신호를 무시할 수 없으므로 이 명령은 또한 로그인 쉘을 중지하고 사용자를 로그오프시킵니다.kill -kill 0 - 소유한 모든 프로세스를 중지하려면 다음 명령을 입력합니다:
이 명령은 다른 워크스테이션에서 시작되는 프로세스와 다른 프로세스 그룹에 속하는 프로세스를 포함하여 유효 사용자가 소유하는 모든 프로세스로 신호 9, SIGKILL 신호를 전송합니다. 요청한 리스트를 인쇄하는 경우 해당 리스트도 중지됩니다.kill -9 -1 - 프로세스에 다른 신호 코드를 보내려면 다음 명령을 입력합니다:
SIGUSR1을 포함한 많은 신호는 프로세스를 중지하지 않으므로 kill 명령의 이름을 잘못 판단할 수 있습니다. SIGUSR1에 수행되는 조치는 사용자가 실행하는 특정 애플리케이션으로 정의됩니다.kill -USR1 1103참고: kill 명령의 이 양식을 갖는 SIGTERM 신호인 신호 15를 전송하려면 -15 또는 TERM을 명시적으로 지정해야 합니다.
파일
| 항목 | 설명 |
|---|---|
| /usr/include/sys/signal.h | 신호 이름을 지정합니다. |