进程的管理主要是指进程的关闭和重启。我们一般关闭或重启软件,都是关闭或者重启它的程序,而不是直接操作进程的。比如,要重启
apache
服务,一般使用命令service httpd restart
重启apache
的程序。那么,可以直接通过管理进程来关闭或重启
apache
吗?答案是肯定的,这时候就要依赖进程的信号Signal
了。我们需要给予该进程号,告诉进程我们想要让它做什么。系统中可以识别的信号较多,我们可以使用命令
kill -l
或者man 7 signal
来查询。结果如下:
信号代称 | 信号名称 | 说明 |
---|---|---|
1 | SIGHUP |
该信号让进程立即关闭,然后重新读取配置文件之后重启 |
2 | SIGINT |
程序中止信号,用于中止前台进程。相当于输出 Ctrl + C 快捷键 |
8 | SIGFPE |
在发生致命的算术运算错误时发出。不仅包括浮点运算错误,还包括溢出及除数为0等其他所有的算术运算错误 |
9 | SIGKILL |
用来立即结束程序的运行。本信号不能被阻塞、处理和忽略。一般用于强制中止进程 |
14 | SIGALRM |
时钟定时信号,计算的是实际的时间或时钟时间。alarm 函数使用该信号 |
15 | SIGTERM |
正常结束进程的信号,kill 命令的默认信号。如果进程已经发生了问题,那么这个信号是无法正常中止进程的。这时我们才会尝试SIGKILL 信号,也就是信号9 |
18 | SIGCONT |
该信号可以让暂停的进程恢复执行。本信号不能被阻断 |
19 | SIGSTOP |
该信号可以暂停前台进程,相当于Ctrl + Z 快捷键。本信号不能被阻断 |