linux——signal信号

linux——signal信号(SIGHUP、SIGINT、SIGQUIT、SIGILL、SIGTRAP、SIGABRT...........................)_夜风的博客-CSDN博客_signal sigtrap

 

  1. SIGHUP /* hangup */
           ~~~~~~       SIGHUP,hong up ,挂断。本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联。
           ~~~~~~       登录Linux时,系统会分配给登录用户一个终端(Session)。在这个终端运行的所有程序,包括前台进程组和 后台进程组,一般都属于这个 Session。当用户退出Linux登录时,前台进程组和后台有对终端输出的进程将会收到SIGHUP信号。这个信号的默认操作为终止进程,因此前台进 程组和后台有终端输出的进程就会中止。不过可以捕获这个信号,比如wget能捕获SIGHUP信号,并忽略它,这样就算退出了Linux登录,wget也 能继续下载。
           ~~~~~~       此外,对于与终端脱离关系的守护进程,这个信号用于通知它重新读取配置文件。
  2. SIGPIPE
           ~~~~~~       管道破裂。这个信号通常在进程间通信产生,比如采用FIFO(管道)通信的两个进程,
    读管道没打开 或者 意外终止就往管道写,写进程会收到SIGPIPE信号     此外用Socket通信的两个进程,写进程在写Socket的时候,读进程已经终止

  3. SIGTERM
           ~~~~~~       程序结束(terminate)信号, 与SIGKILL不同的是该信号可以被阻塞和处理。通常用来要求程序自己正常退出,shell命令kill缺省产生这个信号。如果进程终止不了,我们才会尝试SIGKILL。

  4. SIGCHLD
           ~~~~~~       子进程(child)结束时, 父进程会收到这个信号如果父进程没有处理这个信号,也没有等待(wait)子进程,子进程虽然终止,但是还会在内核进程表中占有表项,这 时的子进程称为僵尸进程。  这种情 况我们应该避免(父进程或者忽略SIGCHILD信号,或者捕捉它,或者wait它派生的子进程,或者父进程先终止,这时子进程的终止自动由init进程 来接管)。

你可能感兴趣的:(linux学习,linux)