我需要一个运行'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结束后才到达终止线,并且没有信号或用户输入也不会。
你能给我任何暗示吗?谢谢,对不起,如果这是一个平庸的问题,但我刚刚开始学习这些东西。答案 0 :(得分:2)
您需要将A
实例放入后台(请参阅this),以便在运行时您可以执行其他操作,即使用kill
向其发送信号。
后台进程将&
放在最后,即:
./A arguments &
启动后台进程后,脚本将继续执行下一个命令。
答案 1 :(得分:2)
SIGNAL=yourSignal
while [ condition ] ; do
./a.out &
PID=$!
kill -s $SIGNAL $PID
done