프로세스 종료
- 응답이 없는 프로세스 또는 불필요한 프로세스를 '강제 종료' 하기 위해서는
PID를 알아야함.
- 'ps -ef', 'ps aux' 명령으로 PID와 PPID 확인 가능
- 프로세스를 종료하는데는 'kill' 명령이나 'pkill'명령을 사용.
프로세스에 시그널을 보내 프로세스를 종료.
'kill' 명령을 통한 프로세스 종료
- 'kill'명령은 인자로 지정한 프로세스에 시그널을 전달
- 시그널은 프로세스에 보내는 간단한 숫자 메세지.
- 9번은 '강제종료', 15번은 '프로세스 종료', 2번은 '인터럽트'
- 15번 시그널은 일반적인 프로세스 종료이지만, 시그널을 무시하거나
다른 동작을 하도록 지정되어 있다면 프로세스가 종료되지 않을 수 있음.
- 'kill' 명령에서 시그널을 지정하지 않을 경우 15번 시그널로 간주
- 9번 시그널은 강제종료이므로 무조건 종료이지만,
좀비 프로세스일 경우 9번 시그널을 받더라도 종료되지 않을 수 있음.
kill |
- 기능 : 지정한 시그널을 프로세스에 보냄 - 형식 : kill [시그널] PID.. - 시그널 : => 2 : 인터럽트 시그널(Ctrl + c) => 9 : 프로세스 강제 종료 => 15 : 프로세스 관련된 파일을 정리하고 프로세스를 종료(종료되지 않는 프로세스가 있을 수도 있음) - 사용 예 : kill 1001, kill -15 1001, kill -9 1001 |
'pkill' 명령을 이용한 프로세스 종료
- 'pkill'은 'kill'명령과 같이 시그널을 보내는데, PID가 아닌
프로세스의 명령 이름(CMD)로 프로세스를 찾아 종료
- 'kill' 명령과의 차이점은, 명령 이름으로 찾아 종료하므로
같은 명령이 여러 개 검색될 경우 한번에 모두 종료가 됨(자신이 소유한 프로세스만 종료가능)
ex)
user@ubuntu:~$ pkill -x man
user@ubuntu:~$ pgrep -x man
user@ubuntu:~$