在C语言中,处理term信号需要使用signal.h
头文件
#include<stdio.h>
#include <stdlib.h>
#include<signal.h>
#include <unistd.h>
// 信号处理函数
void handle_term(int signum) {
printf("Received signal: %d\n", signum);
printf("Terminating the program gracefully.\n");
// 在此处添加程序结束时需要执行的操作,例如释放资源等
exit(signum);
}
int main() {
// 注册信号处理函数
signal(SIGTERM, handle_term);
printf("Program is running, send SIGTERM to terminate it.\n");
while (1) {
sleep(1);
}
return 0;
}
在这个示例中,我们定义了一个名为handle_term
的信号处理函数。当收到SIGTERM
信号时,程序会调用该函数。在信号处理函数中,我们可以执行一些清理操作,然后正常退出程序。
在main
函数中,我们使用signal
函数将SIGTERM
信号与handle_term
处理函数关联起来。然后,程序进入一个无限循环,直到收到SIGTERM
信号。
要向程序发送SIGTERM
信号,可以在命令行中使用kill
命令。首先,找到程序的进程ID(PID),然后运行kill -TERM [PID]
。这将触发信号处理函数,程序将优雅地终止。