inux的常用信号量和进程的四种状态

inux的常用信号量和进程的四种状态

linux下的所有信号
[root@localhost binboot]# kill -l
1) SIGHUP     2) SIGINT     3) SIGQUIT     4) SIGILL     5) SIGTRAP
6) SIGABRT     7) SIGBUS     8) SIGFPE     9) SIGKILL    10) SIGUSR1
11) SIGSEGV    12) SIGUSR2    13) SIGPIPE    14) SIGALRM    15) SIGTERM
16) SIGSTKFLT    17) SIGCHLD    18) SIGCONT    19) SIGSTOP    20) SIGTSTP
21) SIGTTIN    22) SIGTTOU    23) SIGURG    24) SIGXCPU    25) SIGXFSZ
26) SIGVTALRM    27) SIGPROF    28) SIGWINCH    29) SIGIO    30) SIGPWR
31) SIGSYS    34) SIGRTMIN    35) SIGRTMIN+1    36) SIGRTMIN+2    37) SIGRTMIN+3
38) SIGRTMIN+4    39) SIGRTMIN+5    40) SIGRTMIN+6    41) SIGRTMIN+7    42) SIGRTMIN+8
43) SIGRTMIN+9    44) SIGRTMIN+10    45) SIGRTMIN+11    46) SIGRTMIN+12    47) SIGRTMIN+13
48) SIGRTMIN+14    49) SIGRTMIN+15    50) SIGRTMAX-14    51) SIGRTMAX-13    52) SIGRTMAX-12
53) SIGRTMAX-11    54) SIGRTMAX-10    55) SIGRTMAX-9    56) SIGRTMAX-8    57) SIGRTMAX-7
58) SIGRTMAX-6    59) SIGRTMAX-5    60) SIGRTMAX-4    61) SIGRTMAX-3    62) SIGRTMAX-2
63) SIGRTMAX-1    64) SIGRTMAX    

linux的常用信号量

BUS与SEGV

二者都是错误信号,BUS表示总线错误,SEGV表示段错误,程序崩溃的时候99%都是这两个错误导
致的。进程可以捕获和封锁这两类错误。 内核对二者的默认处理是memory dump
WINCH
窗口改变信号(WINdown CHanged)。例如虚拟终端的行数发生变化时将发送WINCH信号,绝大多数
文本编辑器都能捕获WINCH信号自动进行重新配置。内核的默认处理是忽略该信号,并且不进行内存
转储。
进程可以捕获或者封锁该信号
KILL
    杀死/删除进程,编号为9
STOP 
挂起/暂停正在执行的进程,直到收到CONT为止
KILL STOP都不能够被捕获、封锁或者忽略,默认处理都不会产生内存转储。
CONT 
取消挂起,继续执行进程
TSTP 
是STOP信号的“软”版本,即在用户输入Ctrl+Z时由终端驱动程序发送的信号。捕获到该信号的进程通常
清除它们的状态,如何给自己发送一个STOP信号。 TSTP的默认处理不会导致内存转储。
INT 
中断信号,编号为2
当用户 输入Ctrl+C时由终端驱动程序发送INT信号
INT信号是终止当前操作的请求,简单程序捕获到INT信号时应该退出,拥有命令行或者输入模式的那些
程序应该停止他们正在做的事情,清除状态,并等待用户再次输入。
TERM 
软件终止信号,编号为 15
TERM是请求彻底终止某项操作的信号,它期望进程清楚自己的状态并退出
QUIT 
退出信号,编号为 3
与TERM类似,不同之处在于QUIT信号的默认处理是内存转储,而TERM信号的默认处理没有内存转储。
HUP 
挂起信号,编号为 1,有两种解释:
守护进程理解HUP为重新设置的请求,如果守护进程能够不用重新启动就能够重新读取它自己的配置文
件并调整自己以适应变化的话,那么HUP信号通常可以用来触发这种行为
HUP
信号有时有终端驱动程序生成,试图用来清除(也就是终止)跟某个特定终端相连接的那些进程。例如
当一个终端会话结束时,或者当一个Modem的连接不经意的断开时,就可能出现这种情况。
如果需要某些进程在会话结束之后继续运行,那么在C Shell中设法让这些进程变成后台程序,
ksh或者bash中可以用nohup来模拟这种行为。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
进程的四种状态
runnable(可运行状态)
只要有CPU时间,进程就可以执行。一旦进程执行了不能立即完成的系统调用,Linux会把进程转入
睡眠状态
sleeping(睡眠状态)
进程在等待某些事件发生(如终端输入、网络连接)
zombie(僵化状态)
进程已经执行完毕并试图消亡,但是状态没有收集完
stopped(停止状态)
进程被挂起,不允许执行。进程收到STOP或者TSTP信号即进入停止状态,可以用CONT信号来重新启动

你可能感兴趣的:(linux,shell,kill,bash,终端,文本编辑)