在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]
。這將觸發信號處理函數,程序將優雅地終止。