0

我需要一个运行'A'的脚本并向它发送一个应该终止它的信号,我需要用不同的信号对其进行迭代,所以我想要的基本上是

Launch A ->
send signal S to terminate A and check stuff ->
Relaunch A ->
send signal S1 ......

我的问题是,在 A 我有一个循环,如:

while(1){
    scanf()
    ...DO STUFF...
}

所以使用像这样的脚本

./A arguments
kill -s QUIT A'sPid

不会起作用,因为显然它不会在 A 结束之前到达杀戮线,而且它不会没有信号或用户输入。

你能给我任何提示吗?谢谢,如果这是一个平庸的问题,我很抱歉,但我刚刚开始学习这些东西。

4

2 回答 2

2

您需要将A实例置于后台(参见this),以便在它运行时您可以执行其他操作,即使用kill.

后台进程放一个&在最后,即:

./A arguments &

启动后台进程后,脚本将继续执行下一个命令。

于 2012-09-06T00:13:56.903 回答
2
SIGNAL=yourSignal
while [ condition ] ; do
   ./a.out &
   PID=$!
   kill -s $SIGNAL $PID
done
于 2012-09-06T00:18:43.640 回答