使用其pid发送信号进行处理

时间:2015-03-09 23:26:36

标签: shell signals sh kill pid

全部发生,

我正在尝试编写一个shell脚本来运行程序并在它们之间发送一系列延迟信号。我写了下面的代码。

#!/bin/sh

KNOCK="KNOCK"
export KNOCK
./knock &
knockPID=$!

kill -SIGUSR2 $knockPID
kill -SIGUSR2 $knockPID
kill -SIGUSR1 $knockPID
sleep 2s;
kill -SIGUSR1 $knockPID
kill -SIGUSR2 $knockPID

我不断为每个kill命令

收到以下错误
kill: Illegal option -S

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

通常,kill命令的命名信号参数为"recognized in a case-independent fashion, without the SIG prefix"。所以,你想要:

kill -USR1 $knockPID

等等。

答案 1 :(得分:0)

kill -s SIGUSR2 $knockPID

应该适用于所有现代操作系统。

答案 2 :(得分:0)

我也遇到了这个问题,我使用不同的shell修复了它:

#!/bin/bash