차이점이 있습니까
kill -9 212121
과
kill 212121
차이점이 있습니까
kill -9 212121
과
kill 212121
답변:
우분투 매뉴얼 페이지 kill
는 -9
스위치 의 목적 을 설명합니다 (물론 다소 고르지 않은 방식으로).
Name Num Action Description
KILL 9 exit cannot be blocked
다른 매뉴얼 페이지 의 내용은 다음과 같습니다 .
명령
kill
은 지정된 신호를 지정된 프로세스 또는 프로세스 그룹으로 보냅니다. 신호가 지정되지 않으면TERM
신호가 전송됩니다.TERM
신호는이 신호를 프로세스를 종료시킬 것이다. 다른 프로세스의 경우이 신호를 포착 할 수 없으므로KILL
(9
) 신호 를 사용해야 할 수도 있습니다 .
따라서 -9
스위치를 사용하면 프로세스가 효과적으로 종료됩니다. 정지되거나 응답이없는 프로세스가 간단한 TERM
신호에 응답하지 않더라도 신호를 보내면 프로세스가 종료 됩니다 KILL
.
킬 명령은 정의 보내드립니다 신호를 주어진 정체성 (PID)와 프로세스 :
kill -<signal> <pid>
물론 우리는 우리가 소유 한 프로세스 만 죽일 수 있지만, 루트는 모든 프로세스를 죽일 수 있습니다. 컴퓨팅 신호에 대한 요약 정보는 Wikipedia 를 참조하십시오 .
kill
보낼 수있는 신호 는 맨 페이지에 나와 있습니다 . 신호는 이름 또는 번호로 표시 할 수 있습니다. 신호가 제공되지 않으면 기본 신호 15 resp. TERM
사용.
따라서 아래의 세 가지 명령은 모두 동일합니다.
kill -9 1234
kill -KILL 1234
kill -SIGKILL 1234
응용 프로그램이 신호에서 작동하는 방식 SIGTERM
과 차이점은 다음 과 SIGKILL
같습니다.
TERM
: 응용 프로그램을 종료 할 수 있습니다 (예 : 종료 루틴을 올바르게 실행). KILL
: 응용 프로그램이 즉시 중지되고 종료됩니다 (일부 경우 추정되는 충돌을보고하기 위해 데이터가 손실되거나 apport가 발생할 수 있음).다음은 모두 동의어입니다.
kill -9 1234
kill -KILL 1234
kill -SIGKILL 1234
신호 처리의 세계에서 SIGKILL 은 프로그램이 아닌 운영 체제에서 처리하는 몇 가지 고유 한 것 중 하나입니다 . 를 실행 kill -9
하면 응용 프로그램 자체 종료를 지시하지 않고 대신 프로그램이 수행하는 작업에 관계없이 OS에게 프로그램 실행을 중지하도록 지시합니다.
SIGKILL 이 전송 된 후 프로그램이 즉시 중지됩니다. 프로그램 대신 커널 호출 (예 : 파일 IO)이 실행중인 경우 호출에 따라 호출이 끝날 때까지 호출이 계속 될 수도 있고 계속되지 않을 수도 있지만 프로그램 자체는 더 이상 실행되지 않습니다. 참고 추적 디버거에서 실행 작업이나 작업 다르게 여기에 작동 할 수 있습니다.
막을 수없는 다른 신호는 SIGSTOP 인데 비슷한 효과가 있지만 프로그램을 정지시킵니다 . 나중에 SIGCONT 를 보내서 다시 시작할 수 있습니다. 이 동작은 OS에 의해 완전히 제어되며 프로그램은 사전 통지를받지 않습니다.
다른 모든 신호는 프로그램으로 전송됩니다. 그것은 그들이 선택하지만 그들을 처리 할 수 있습니다, 또는 신호를 무시하면 기본 동작이 따릅니다.
다음은 프로세스로 전송되는 유용한 신호입니다.
kill
및 killall
. cat /etc/passwd | head -n1
SIGPIPE를 보내 전체 파일을 완료하기 전에 종료됩니다.cat
cat
이러한 모든 신호는 자체 설정에서 "자연스럽게"발생하지만 원하는 결과를 얻기 위해 신호를 사용하여 조건을 위조 할 수 있습니다.
예를 들어, 누군가의 SSH 세션을 종료하려면 프로세스를 간단히 종료 할 수 있지만 그렇게하면 보안상의 이유로 중요 할 수있는 HISTORY 파일이 업데이트되지 않습니다. 그러나 대신 SIGHUP 을 보내면 프로세스가 연결이 끊어진 것으로 가정하고 표준 정리를 수행합니다.
SIGQUIT
기본 액션이 코어를 덤프하고 종료하는을 보냅니다 . 프로그램이 매우 잘못하고있는 경우 사용할 수 있으며 즉시 중지해야하며 나중에 디버깅 할 수 있습니다.
kill -9