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信號將導致以下步驟的發生:停止接受新的連接,等待當前連接停止,重新載入配置文件,重新打開日誌文件,重啟服務器,從而實現相對平滑的不關機的更改。

參見