『 Linux 』信号的写入与保存
warning:
这篇文章距离上次修改已过284天,其中的内容可能已经有所变动。
在Linux中,可以使用kill
命令发送信号给进程,并使用trap
命令在脚本中处理信号。
以下是一个简单的示例,展示了如何在Shell脚本中捕获SIGINT信号并对其进行处理:
#!/bin/bash
trap "echo '捕获到SIGINT信号,进行清理工作。'" SIGINT
echo "脚本正在运行,按Ctrl+C发送SIGINT信号。"
# 模拟一个长时间运行的进程
while true
do
sleep 1
done
当你运行这个脚本并按下Ctrl+C
时,会触发SIGINT信号,该信号被trap
命令捕获,并执行定义的命令进行处理。
如果你想将信号写入文件,可以使用kill
命令配合tee
命令。例如,将SIGINT信号写入文件:
kill -s SIGINT $(ps -ef | grep my_script.sh | grep -v grep | awk '{print $2}') | tee signal.txt
这条命令会发送SIGINT信号给名为my_script.sh
的进程,并将信号编号2
(对应SIGINT)写入signal.txt
文件。
评论已关闭