SIGUSR1和SIGUSR2
外觀
描述 | 用戶定義的信號 |
---|---|
默認動作 | 進程異常終止 |
SA_SIGINFO宏 | |
無
|
在POSIX兼容的平台上,SIGUSR1和SIGUSR2是發送給一個進程的信號,它表示了用戶定義的情況。它們的符號常量在頭文件signal.h
中定義。在不同的平台上,信號的編號可能發生變化,因此需要使用符號名稱。
語源
[編輯]SIG是信號名的通用前綴。USR是user-defined的縮寫,即用戶定義的。
使用
[編輯]與實時信號SIGRTMIN和SIGRTMAX相似,SIGUSR1和SIGUSR2的含義在POSIX中沒有定義。它們的用途在不同的程序中可能有所不同。
許多程序使用SIGUSR1在線程和進程間進行同步,例如在Linux 2.0中的LinuxThreads線程庫(已被廢棄,為NPTL所代替)。其它的程序,例如dd的某些版本,會在收到該信號時輸出當前狀態(Mac OS X的dd實現會在收到USR1時暫停)。USR1亦通常被用來告知應用程序重載配置文件;例如,向Apache HTTP服務器發送一個USR1信號將導致以下步驟的發生:停止接受新的連接,等待當前連接停止,重新載入配置文件,重新打開日誌文件,重啟服務器,從而實現相對平滑的不關機的更改。