溫馨提示×

Linux下如何捕獲并處理SIGHUP信號

小樊
83
2024-09-08 18:48:11
欄目: 智能運維

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

0