Linux 시스템에서 정의한 신호 목록에는 사용자 정의 신호( SIGUSR1
및 SIGUSR2
)라는 두 가지 신호가 있습니다. 특정 상황에서는 다른 신호가 방출되거나 포착되지만 SIGUSR은 사용자 애플리케이션에 맡겨집니다.
그렇다면 왜 신호가 두 개만 있습니까?
답변1
역사적으로 Unix에는 이 두 가지 신호만 있었지만 현대 시스템에는 실시간 신호가 있습니다 SIGRTMIN
.SIGRTMAX
신호 API의 이상하고 이식 불가능한 의미로 인해 신호가 파이프와 같은 다른 통신 메커니즘보다 선호되는 사용 사례는 거의 없습니다. 따라서 새로운 신호 번호를 할당할 필요가 없다고 간주되었습니다.
답변2
신호는 단지 원시적인 통신 수단을 제공할 뿐입니다. 특히 신호에는 정보가 첨부될 수 없습니다. 수신자는 신호 번호만 알고 발신자의 신원은 알 수 없습니다. 여러 신호를 하나로 결합할 수 있습니다. 이러한 모든 제한 사항을 고려할 때 신호의 용도는 많지 않습니다.
보다 복잡한 목적을 위해서는 파이프나 소켓과 같은 보다 복잡한 상호 작용 수단을 사용하십시오.