시그널(Unix 시그널)란?

Linux 등에서 OS나 다른 프로세스가 프로세스에 사건을 알리는 짧은 통지. 번호와 이름이 정해져 있으며, kill의 기본값인 SIGTERM(15번)은 종료 요청, SIGKILL(9번)은 강제 종료, SIGINT(2번)는 Ctrl+C, SIGTSTP는 Ctrl+Z에 의한 일시 정지, SIGHUP(1번)은 터미널의 연결 끊김을 알린다. 프로세스는 많은 시그널에 대해 받았을 때의 처리(핸들러)를 준비하거나 무시할 수 있지만, SIGKILL과 SIGSTOP은 받을 수도 무시할 수도 없다. 셸 스크립트에서는 trap으로 핸들러를 설정한다.

일본어 명칭: シグナル(Unix)

시그널(Unix 시그널)은(는) Linux와 커맨드 라인 기초 등 1개 분야의 연습 문제 1개에 나와요.

분야: Linux와 커맨드 라인 기초

도전해 보기: 시그널(Unix 시그널) 관련 문제

응답하지 않게 된 프로세스를 멈출 때, 먼저 'kill 프로세스ID'를 사용하고 그래도 끝나지 않을 때만 'kill -9 프로세스ID'를 사용하는 것이 좋다고 한다. 그 이유로 올바른 것은?

  1. A기본값인 SIGTERM(15번)은 프로세스가 받아서 뒷정리를 한 다음 끝날 수 있지만, SIGKILL(9번)은 받을 수 없으며 뒷정리 없이 강제로 끝내기 때문에
  2. Bkill이 기본으로 보내는 SIGTERM(15번)은 자식 프로세스까지 포함하여 모두 끝내지만, SIGKILL(9번)은 지정한 프로세스만 끝내므로 영향이 작기 때문에
  3. CSIGKILL(9번)은 프로세스가 받아서 뒷정리를 한 다음 끝날 수 있지만, kill이 기본으로 보내는 SIGTERM(15번)은 무시할 수 없으며 즉시 끝내기 때문에
정답과 해설 보기

정답: A. 기본값인 SIGTERM(15번)은 프로세스가 받아서 뒷정리를 한 다음 끝날 수 있지만, SIGKILL(9번)은 받을 수 없으며 뒷정리 없이 강제로 끝내기 때문에

시그널은 OS가 프로세스에 사건을 알리는 짧은 통지로, 번호와 이름이 정해져 있습니다. kill은 옵션을 붙이지 않으면 SIGTERM(15번)을 보내며, 프로그램은 이를 받는 처리(핸들러)를 준비해 두고 작업 중인 파일을 저장하거나 임시 파일을 지운 다음 끝날 수 있습니다. SIGKILL(9번)은 프로세스가 받을 수도 무시할 수도 없으며 커널이 강제로 끝내므로, 쓰다 만 파일이 손상된 채 남는 경우가 있습니다. 멈추고 싶은 프로세스의 ID는 ps나 top으로 조사합니다.

해설 속 시그널(Unix 시그널)

시그널(Unix 시그널)이(가) 나오는 문제 (1)

  1. 응답하지 않게 된 프로세스를 멈출 때, 먼저 'kill 프로세스ID'를 사용하고 그래도 끝나지 않을 때만 'kill -9 프로세스ID'를 사용하는 것이 좋다고 한다. 그 이유로 올바른 것은?

관련 용어

셸(Shell) 슈퍼유저(Superuser) 심볼릭 링크(Symbolic Link) 입출력 리다이렉션(I/O Redirection) 정규 표현식(Regular Expression) 파이프(|) 파일 권한(퍼미션) 하드 링크(Hard Link) 환경 변수(Environment Variable) cron

용어집으로 돌아가기