我经常有段时间没用linux 的时候,会把他理解成杀死一个进程,实际上不是这样的。
kill命令是用进程发送一个信号,至于是什么信号,可以用户指定.
语法 : kill [-signal] pid
比如: kill -9 9198 kill -SIGTERM 9188 kill -TERM 9188
经常用到只有下面吧:
1: HUP 挂起 2:INT 中断 3:QUIT 退出 9:KILL 杀死 11 SEGV 段错误
15:TERM 软件终止
他们默认情况下,执行的动作都是终止进程。
默认情况下kill 命令发送TERM信号,请求终止操作。
CRTL + C 是发送了中断信号, INT .
最后一个很实用的命令:kill -kill pid kill -9 xxx 这个信号永远不会被捕获,可以在内核级别杀死一个进程。
#include <signal.h>
typedef void (*sighandler_t)(int);
sighandler_t signal(int signum, sighandler_t handler);
返回值: 上一个sighandler_t,先前信号处理是怎么样,或者 SIG_ERR
第一个参数是: 信号编号,可用KILL -l 显示找到, 第二个参数是 信号处理函数 ,回调函数,当信号产生的时候调用,