문제
다음과 같이 사용자 제거 작업이 실패하였다. 해당 작업 전에 실행해야할 명령으로 알맞은 것은?
① kill 3878 ② kill ihduser ③ kill -9 3878 ④ killall -9 3878
정답
3번
해설
정답: 3. "process 3878 가 사용 중"이라 계정 삭제가 실패했다. 먼저 그 프로세스(PID 3878)를 종료해야 한다. 확실히 종료하려면 SIGKILL 을 보내는 "kill -9 3878" 을 실행한 뒤 userdel 을 다시 한다.
오답 풀이
- 1번: "kill 3878"(기본 SIGTERM)도 종료 시도지만, 무시할 수 있어 확실한 제거를 위해서는 -9 가 적절하다(보기 중 -9 지정인 3번이 정답).
- 2번: "kill ihduser" 는 PID 가 아니라 사용자명을 인자로 주어 동작하지 않는다.
- 3번: 메시지가 가리키는 PID 3878 을 강제 종료하는 "kill -9 3878" 로 옳다.
- 4번: "killall -9 3878" 은 killall 이 이름 기준인데 숫자를 주어 형식이 맞지 않는다.
보충 개념 kill 은 PID 를 대상으로 한다. -9(SIGKILL)는 무시·차단할 수 없는 강제 종료다. 계정이 사용 중이면 fuser 나 lsof 로 점유 프로세스를 확인한 뒤 종료하고 userdel 을 재시도한다.