문제
다음 중 프로세스 식별번호가 2219, 2229, 2239 인 프로세스를 강제 종료하는 명령으로 알맞은 것은?
① kill -9 22*9 ② kill -9 22{1,2,3}9 ③ killall -9 2219 2229 2239 ④ killall -9 2219, 2229, 2239
정답
2번
해설
정답: 2. 셸의 중괄호 확장 "{1,2,3}" 을 이용하면 22{1,2,3}9 가 2219 2229 2239 로 펼쳐진다. 따라서 "kill -9 22{1,2,3}9" 로 세 PID 를 한 번에 강제 종료(-9, SIGKILL)할 수 있다.
오답 풀이
- 1번: "22*9" 의 * 는 글로빙으로 파일명에 적용되며, 존재하는 파일이 없으면 그대로 전달되어 PID 로 해석되지 않는다.
- 2번: 22{1,2,3}9 가 세 PID 로 확장되므로 옳다.
- 3번: killall 은 PID 가 아니라 프로세스 이름을 인자로 받으므로 숫자 PID 에는 맞지 않는다.
- 4번: killall 사용도 부적절하고 쉼표 구분 형식도 유효하지 않다.
보충 개념 kill 은 PID(또는 작업번호 %n)를 대상으로, killall/pkill 은 프로세스 이름을 대상으로 시그널을 보낸다. -9 는 SIGKILL 로 무조건 종료한다.