我在后台运行了简单的bash守护程序(具有root权限),当通知时,它会假设action1
或/和action2
。
如何通知它/发送某种信号对其作出反应?
我已经尝试过每隔1秒或更长时间检查一次文件更改的方案,但这是一种不太理想的解决方案。
答案 0 :(得分:6)
您可以使用kill
命令向进程发送信号。有一系列标准信号以及两个用户定义的信号,您可以让脚本以您喜欢的方式处理。以下是脚本中的内容
#!/bin/bash
handler(){
echo "Handler was called"
}
trap handler USR1
while sleep 1
do
date
done
要向脚本发送信号,首先需要找到脚本的pid,然后使用kill
命令。它可能看起来像kill -USR1 24962
。
答案 1 :(得分:1)
您可以使用kill命令向进程发送信号。在bash中,您可以使用trap命令创建signal handler。
#!/bin/bash
# traptest.sh
trap "echo Booh!" SIGINT SIGTERM
echo "pid is $$"
while : # This is the same as "while true".
do
sleep 60 # This script is not really doing anything.
done