한숨 쉬다

SIGHUP

POSIX 준거 플랫폼에서는, SAHUP(신호 절단)는, 제어 단말기가 닫혔을 때에 프로세스에 송신되는 신호입니다.(당초 시리얼 회선 폐기를 프로세스에 통지하도록 설계되어 있습니다).SAHUP은 헤더 파일에 정의된 심볼 상수입니다. signal.h.

역사

대부분의 경우 접속된 사용자가 물리적으로 모뎀을 끊은 결과입니다.

수년간 컴퓨터 시스템에 대한 액세스는 시리얼 회선과 RS-232 프로토콜을 통해 단말기를 메인프레임 시스템에 연결하는 것으로 구성되었습니다.이러한 이유로, 신호라고 불리는 소프트웨어 인터럽트 시스템이 개발되고 있을 때, 신호는 "Hangup"에서 사용하도록 지정되었습니다.

시리얼 회선이 끊어지면, SAHUP 가 프로그램으로 송신됩니다.대부분의 경우, 접속 유저가 모뎀을 절단해 접속을 종료했기 때문입니다.회선이 손실된 Data Carrier Detect(DCD; 데이터 캐리어 검출) 신호를 통해 드롭된 것을 검출합니다.

신호는 항상 편리한 프로세스통신(IPC) 방식이었지만 초기 구현에서는 프로그램이 자체 목적을 위해 가로채고 해석할 수 있는 사용자 정의 가능한 신호(SIGUSR1SIGUSR2의 이후 추가 등)가 없었습니다.이 때문에 데몬 등 제어 단말기가 필요 없는 어플리케이션은 SAHUP을 신호로 재사용하여 컨피규레이션파일을 다시 읽거나 재초기화합니다.이 규칙은 Apache 및 Sendmail 의 패키지로 오늘날까지 유지됩니다.

현대적인 사용법

시리얼 회선을 통한 접속이 감소함에 따라 현대 시스템에서는 SAHUP의 의미가 다소 변화하고 있으며, 이는 종종 제어용 의사 또는 가상 단말기가 폐쇄되었음을 의미합니다.명령어가 터미널 창 내에서 실행되고 명령어프로세스가 실행 중일 때 터미널 창이 닫히면 SAHUP을 [1]수신합니다.

SAHUP를 수신하는 프로세스가 Unix 쉘인 경우, 작업 제어의 일부로서 신호를 대행 수신해, 자녀 프로세스(좀 더 정확하게는 셸에 의해 내부적으로 "작업"으로 표현되는 프로세스 그룹)에 신호를 보내기 전에 정지된 모든 프로세스가 계속되도록 하는 것이 일반적입니다.이 프로세스는 기본적으로 [2]종료됩니다.

이것은 두 가지 방법으로 회피할 수 있다.첫째, Single UNIX Specificationnohup이라는 셸 유틸리티를 기술하고 있으며, 이는 프로그램을 시작하고 기본적으로 SAHUP을 무시하기 위한 래퍼로 사용될 수 있습니다.둘째, 하위 프로세스 그룹은 작업 ID를 사용하여 해체를 호출하여 "거부"할 수 있습니다. 그러면 셸의 작업 테이블에서 프로세스 그룹이 제거되므로(SHEYUP이 전송되지 않음), 작업 테이블에서 유지되지만 셸 종료 시 SAHUP을 수신하지 못하게 됩니다.

다른 셸에는 kshdisown facility와 같은 다른 SAHUP 제어 및 관리 방법도 있습니다.대부분의 최신 Linux 배포 문서에서는 다음과 같이 규정하고 있습니다.kill -HUP <processID>SHEYUP [3]신호를 보냅니다.

데몬 프로그램은 SAHUP을 재기동 신호로 사용하는 경우가 있습니다.이 가장 일반적인 이유는 변경된 컨피규레이션파일을 다시 읽기 위해서입니다.

세부 사항

심볼릭 신호명은 신호번호가 플랫폼에 따라 다를 수 있기 때문에 사용되지만 XSI 준거 시스템에서는 숫자 상수1 을 사용하여 실제로는 대부분의 시스템이 사용하고 있는SHEYUP 를 나타낼 수 있습니다.

SAHUP은 대응할 수 있습니다., 프로그래머는 함수를 호출하거나 무시하거나 기본 액션을 복원하는 등 SAHUP을 수신했을 때 수행할 액션을 정의할 수 있습니다.

POSIX 준거 시스템의 디폴트액션은 비정상 종료입니다.

레퍼런스

  1. ^ 를 클릭합니다Kerrisk, Michael, ed. (25 July 2009), "SIGNAL(7)", Linux Programmer's Manual (version 3.22), The Linux Kernel Archives, retrieved 23 September 2009.
  2. ^ 를 클릭합니다Garrels, Machtelt, ed. (27 December 2008), "Signals", Bash Guide for Beginners, ver. 1.11, The Linux Documentation Project, retrieved 23 September 2009.
  3. ^ 를 클릭합니다Kerrisk, Michael, ed. (25 July 2009), "KILL(2)", Linux Programmer's Manual (version 3.22), The Linux Kernel Archives, retrieved 23 September 2009.

「 」를 참조해 주세요.