SIGUSR1和SIGUSR2

SIGUSR1和SIGUSR2
描述用户定义的信号
默认动作进程异常终止
SA_SIGINFO宏

在POSIX兼容的平台上,SIGUSR1SIGUSR2是发送给一个进程信号,它表示了用户定义的情况。它们的符号常量头文件signal.h中定义。在不同的平台上,信号的编号可能发生变化,因此需要使用符号名称。

语源

SIG是信号名的通用前缀USRuser-defined的缩写,即用户定义的

使用

与实时信号SIGRTMIN和SIGRTMAX相似,SIGUSR1和SIGUSR2的含义在POSIX中没有定义。它们的用途在不同的程序中可能有所不同。

许多程序使用SIGUSR1在线程和进程间进行同步,例如在Linux 2.0中的LinuxThreads线程库(已被废弃,为NPTL所代替)。其它的程序,例如dd的某些版本,会在收到该信号时输出当前状态(Mac OS X的dd实现会在收到USR1时暂停)。USR1亦通常被用来告知应用程序重载配置文件;例如,向Apache HTTP服务器发送一个USR1信号将导致以下步骤的发生:停止接受新的连接,等待当前连接停止,重新载入配置文件,重新打开日志文件,重启服务器,从而实现相对平滑的不关机的更改。

参见

  • LinuxThreads and SIGUSR1/SIGUSR2
POSIX
SIGABRT · SIGALRM · SIGFPE · SIGHUP · SIGILL · SIGINT · SIGKILL · SIGPIPE · SIGQUIT · SIGSEGV · SIGTERM · SIGUSR1 · SIGUSR2 · SIGCHLD · SIGCONT · SIGSTOP · SIGTSTP · SIGTTIN英语SIGTTIN · SIGTTOU · SIGBUS · SIGPOLL · SIGPROF · SIGSYS · SIGTRAP · SIGURG英语SIGURG · SIGVTALRM · SIGXCPU · SIGXFSZ · 实时信号可由用户定义(SIGRTMIN+n至SIGRTMAX)
非POSIX
SIGIOT · SIGEMT · SIGSTKFLT · SIGIO · SIGCLD · SIGINFO · SIGPWR · SIGLOST · SIGWINCH · SIGUNUSED