Linux信号及孤儿进程与僵尸进程(二)

2015-11-10 13:45:55 · 作者: · 浏览: 17
IGXFSZ
当进程企图扩大文件以至于超过文件大小资源限制。


26) SIGVTALRM
虚拟时钟信号. 类似于SIGALRM, 但是计算的是该进程占用的CPU时间.


27) SIGPROF
类似于SIGALRM/SIGVTALRM, 但包括该进程用的CPU时间以及系统调用的时间.


28) SIGWINCH
窗口大小改变时发出.


29) SIGIO
文件描述符准备就绪, 可以开始进行输入/输出操作.


30) SIGPWR
Power failure


31) SIGSYS
非法的系统调用。


在以上列出的信号中,程序不可捕获、阻塞或忽略的信号有:SIGKILL,SIGSTOP
不能恢复至默认动作的信号有:SIGILL,SIGTRAP
默认会导致进程流产的信号有:SIGABRT,SIGBUS,SIGFPE,SIGILL,SIGIOT,SIGQUIT,SIGSEGV,SIGTRAP,SIGXCPU,SIGXFSZ
默认会导致进程退出的信号有:SIGALRM,SIGHUP,SIGINT,SIGKILL,SIGPIPE,SIGPOLL,SIGPROF,SIGSYS,SIGTERM,SIGUSR1,SIGUSR2,SIGVTALRM
默认会导致进程停止的信号有:SIGSTOP,SIGTSTP,SIGTTIN,SIGTTOU
默认进程忽略的信号有:SIGCHLD,SIGPWR,SIGURG,SIGWINCH


孤儿进程:父进程执行完成或被终止后,仍在运行的进程。这类进程会被init进程收养,init进程对它们完成收集工作。


僵尸进程:子进程结束后,其父进程没有等待它(调用wait waitpid获取子进程的状态信息),子进程的进程描述符依然保存在系统之中,这种进程称为僵尸进程。


总结一下这两个的区别:其实就是父子进程谁先死的问题。


父进程先死,子进程没了爹妈,变成了孤儿;(被init收养后,就不是孤儿了)


子进程先死,父进程没有收尸(等待),子进程变成了僵尸。