阅读量:0
在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]
。这将触发信号处理函数,程序将优雅地终止。