在 Linux 下,你可以使用 C 語言編寫一個程序來捕獲并處理 SIGHUP 信號
#include<stdio.h>
#include <stdlib.h>
#include<signal.h>
#include <unistd.h>
// 信號處理函數(shù)
void handle_sighup(int signum) {
printf("Received SIGHUP, ignoring...\n");
}
int main() {
// 注冊信號處理函數(shù)
signal(SIGHUP, handle_sighup);
// 主循環(huán),讓程序持續(xù)運行
while (1) {
printf("Program is running...\n");
sleep(5);
}
return 0;
}
要編譯并運行此程序,請將代碼保存到名為 sighup_example.c
的文件中,然后在終端中運行以下命令:
gcc sighup_example.c -o sighup_example
./sighup_example
現(xiàn)在,你可以在另一個終端中使用 kill
命令發(fā)送 SIGHUP 信號給這個程序。首先,找到程序的進(jìn)程 ID(PID),然后發(fā)送信號:
ps aux | grep sighup_example
kill -HUP [PID]
將 [PID]
替換為實際的進(jìn)程 ID。程序?qū)⒉东@ SIGHUP 信號并輸出 “Received SIGHUP, ignoring…”。