温馨提示×

Linux下如何捕获并处理SIGHUP信号

小樊
83
2024-09-08 18:48:11
栏目: 智能运维

在 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…”。

0