Linux信号实验——关闭自身进程
主要概念:
信号:linux系统响应某些条件产生的一个事件,接收到信号的进程会执行相应的操作。
kill -l
查看所有信号
raise()
函数向进程自身发送信号,我们这里发送杀死进程的信号 SIGKILL
相关函数:
#include <sys/types.h>
#include <signal.h>
int kill(pid_t pid, int sig); //发送信号
int raise(int sig); //向进程自身发送信号
代码:
//raise.c
#include <stdio.h>
#include <unistd.h>
#include <signal.h>
#include <stdlib.h>
#include <sys/types.h>
int main(void)
{
printf("raise before\r\n");
raise(9);
printf("raise after\r\n");
return 0;
}
编译运行:
gcc -o raise raise.c
./raise
实验现象:
sixer@ubuntu:~/imx_usr/sys_app/01_process/signal$ ./raise
raise before
Killed
总结:
使用 raise()
函数向进程自身发送 SIGKILL
信号,相当于 kill(getpid(), SIGKILL)