专业编程基础技术教程

网站首页 > 基础教程 正文

Linux终止程序的几种信号

ccvgpt 2024-11-21 11:07:58 基础教程 6 ℃

(1)正在运行脚本,若直接关闭终端,则终端会向正在运行的脚本发送SIGUP信号

(2)正在运行的脚本,若ctrl+c终止,则shell会向脚本发送SIGINT信息

Linux终止程序的几种信号

(3)kill -9 发送的SIGKILL信息无法捕获和忽略

使用如下的脚本通过生成的txt文件及内容即可验证上述场景。

#!/bin/bash

# 若程序正在运行直接关闭终端则会生成1.txt
handler1() {
    echo "hangup" > 1.txt
    exit 0
}

# 若程序正在运行ctrl+c终止程序则会生成2.txt
handler2() {
    echo "interrupt" > 2.txt
    exit 0
}

# kill -9 发送的SIGKILL信息无法捕获和忽略,所以无法生成3.txt
handler3() {
    echo "kill" > 3.txt
    exit 0
}

trap handler1 SIGHUP
trap handler2 SIGINT
trap handler3 SIGKILL

sleep 10
echo "hello" > 5.txt

Tags:

最近发表
标签列表