2013-10-06 2 views
12

나는 수면 과정에서 킬 스위치 플래그를 테스트하고있었습니다.'Killed'와 'Terminated'의 차이점

처음에는 -15

[email protected]:~/Desktop/expermiments$ ps cax | grep 10005 
10005 pts/2 S+  0:00 sh 
[email protected]:~/Desktop/expermiments$ kill -15 10005 

으로 살해 시도 그리고 프로세스가

[email protected]:~/Desktop/expermiments$ sh testscript.sh 
This is a script which sleeps for few seconds .. 
Terminated 

을 종료있어 그럼 내가 그것을 살해 - 9

[email protected]:~/Desktop/expermiments$ ps -ef | grep testscript.sh 
xtechkid 10059 9852 0 13:48 pts/2 00:00:00 sh testscript.sh 
xtechkid 10064 10007 0 13:48 pts/4 00:00:00 grep --color=auto testscript.sh 
[email protected]:~/Desktop/expermiments$ kill -9 10059 

그리고 프로세스가 살해

[email protected]:~/Desktop/expermiments$ sh testscript.sh 
This is a script which sleeps for few seconds .. 
Killed 

차이점은 무엇입니까?

답변

21

'종료'신호 인 SIGTERM은 프로그램에서 가로 챌 수있는 신호입니다. 백그라운드에서 실행되는 프로세스는 종종이 신호를 포착하여 종료 프로세스를 시작하여 깨끗한 종료를 가져옵니다. 'kill'신호 인 SIGKILL은 가로 챌 수 없습니다. 이것이 프로세스로 보내지면 그 프로그램이 갑자기 종료됩니다.

예를 들어 컴퓨터를 종료하거나 재부팅 할 때 일반적으로 SIGTERM이 실행중인 프로세스로 전송되어 지원하는 경우 깨끗한 방법으로 종료 할 수 있습니다. 그런 다음 몇 초 후에 SIGKILL이 사용중인 리소스가 강제로 해제되고 (예 : 사용중인 파일) 종료 순서가 계속 될 수 있도록 실행중인 프로세스로 SIGKILL이 전송됩니다 (예 : 파일 시스템 마운트 해제)

4

은 종료 : 그것은 (디스크, 로그 등으로 RAM에서 데이터를 쓰기) 종료하기 전에 모든 데이터를 저장합니다

킬 : 그것은 더 PC의 전원을 눌러 버튼을 다시 같다. 로그 나 다른 데이터를 저장하지 않습니다.