在 Linux 下,你可以使用 C 语言编写一个程序来捕获并处理 SIGHUP 信号
#include<stdio.h>
#include <stdlib.h>
#include<signal.h>
#include <unistd.h>
// 信号处理函数
void handle_sighup(int signum) {
printf("Received SIGHUP, ignoring...\n");
}
int main() {
// 注册信号处理函数
signal(SIGHUP, handle_sighup);
// 主循环,让程序持续运行
while (1) {
printf("Program is running...\n");
sleep(5);
}
return 0;
}
要编译并运行此程序,请将代码保存到名为 sighup_example.c
的文件中,然后在终端中运行以下命令:
gcc sighup_example.c -o sighup_example
./sighup_example
现在,你可以在另一个终端中使用 kill
命令发送 SIGHUP 信号给这个程序。首先,找到程序的进程 ID(PID),然后发送信号:
ps aux | grep sighup_example
kill -HUP [PID]
将 [PID]
替换为实际的进程 ID。程序将捕获 SIGHUP 信号并输出 “Received SIGHUP, ignoring…”。