我的几个常规程序(定期)崩溃并显示消息“用户定义的信号 1”。我知道有nohup命令,但有nousr1命令吗?或者可以nohup用 USR1做类似的事情?
shelltrap内置命令怎么样?
trap 'echo "Thou shalt not USR1 me"' USR1
Run Code Online (Sandbox Code Playgroud)
一个简单的黑客解决方案,具有类似于 的实用程序nohup,但对于SIGUSR1,将获取coreutils源代码的副本,解压它,然后执行
sed -i 's/SIGHUP/SIGUSR1/' /path/to/coreutils/src/nohup.c
Run Code Online (Sandbox Code Playgroud)
,还可以选择更改输出文件名
sed -i 's/nohup\.out/nousr1.out/g' /path/to/coreutils/src/nohup.c
Run Code Online (Sandbox Code Playgroud)
,编译此源并将新编译的nohup二进制文件安装到/usr/bin/nousr1:
cp /path/to/coreutils/src/nohup /usr/bin/nousr1
Run Code Online (Sandbox Code Playgroud)
之后,正如我检查的那样,sleep 1000退出USR1,而不nousr1 sleep 1000受此信号的影响。
| 归档时间: |
|
| 查看次数: |
652 次 |
| 最近记录: |