SIGUSR1和SIGUSR2

POSIX相容的平台上,SIGUSR1SIGUSR2是傳送給一個行程訊號,它表示了使用者定義的情況。它們的符號常數標頭檔signal.h中定義。在不同的平台上,訊號的編號可能發生變化,因此需要使用符號名稱。

SIGUSR1和SIGUSR2
描述使用者定義的訊號
預設動作行程異常終止
SA_SIGINFO宏

語源

SIG是訊號名的通用字首USRuser-defined的縮寫,即使用者定義的

使用

與即時訊號SIGRTMIN和SIGRTMAX相似,SIGUSR1和SIGUSR2的含義在POSIX中沒有定義。它們的用途在不同的程式中可能有所不同。

許多程式使用SIGUSR1線上程和行程間進行同步,例如在Linux 2.0中的LinuxThreads執行緒庫(已被廢棄,為NPTL所代替)。其它的程式,例如dd的某些版本,會在收到該訊號時輸出當前狀態(Mac OS X的dd實現會在收到USR1時暫停)。USR1亦通常被用來告知應用程式多載設定檔;例如,向Apache HTTP伺服器傳送一個USR1訊號將導致以下步驟的發生:停止接受新的連接,等待當前連接停止,重新載入設定檔,重新打開紀錄檔檔案,重新啟動伺服器,從而實現相對平滑的不關機的更改。

參見