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訊號將導致以下步驟的發生:停止接受新的連接,等待當前連接停止,重新載入設定檔,重新打開紀錄檔檔案,重新啟動伺服器,從而實現相對平滑的不關機的更改。