如何将自定义信号发送到 bash 守护进程?
How to send custom signal to bash daemon process?
我在后台有一个简单的 bash 守护进程 运行(具有 root 权限),它假设在收到通知时执行 action1
or/and action2
。
如何通知 it/send 它会做出反应的某种信号?
我尝试过每 1 秒或更频繁地检查文件更改的方案,但这是一种不太理想的解决方案。
您可以使用 kill
命令向进程发送信号。有一系列标准信号以及两个用户定义的信号,您可以让您的脚本以您喜欢的任何方式处理。这是它在脚本中的样子
#!/bin/bash
handler(){
echo "Handler was called"
}
trap handler USR1
while sleep 1
do
date
done
要向脚本发送信号,您首先需要找到脚本的 pid,然后使用 kill
命令。它可能看起来像这样 kill -USR1 24962
.
您可以使用kill command to send a process a signal. In bash, you can use the trap command to create a 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
我在后台有一个简单的 bash 守护进程 运行(具有 root 权限),它假设在收到通知时执行 action1
or/and action2
。
如何通知 it/send 它会做出反应的某种信号?
我尝试过每 1 秒或更频繁地检查文件更改的方案,但这是一种不太理想的解决方案。
您可以使用 kill
命令向进程发送信号。有一系列标准信号以及两个用户定义的信号,您可以让您的脚本以您喜欢的任何方式处理。这是它在脚本中的样子
#!/bin/bash
handler(){
echo "Handler was called"
}
trap handler USR1
while sleep 1
do
date
done
要向脚本发送信号,您首先需要找到脚本的 pid,然后使用 kill
命令。它可能看起来像这样 kill -USR1 24962
.
您可以使用kill command to send a process a signal. In bash, you can use the trap command to create a 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