2010-08-13 55 views
1

我想要一個帶有無限循環的腳本,當它再次執行時,會終止由此腳本創建的所有進程。Shell腳本(BASH):切換無法自行結束的腳本「開啓/關閉」的最佳方式是什麼?

所以基本上你通過終端啓動腳本:

慶典poll.sh

,它的無限運行,打開另一個終端,並再次

慶典poll.sh

並且所有poll.sh進程都將被殺死。

什麼是最好的方法來做到這一點?我的第一個想法是設置環境變量,如export POLLRUNNING = true,如果[$ POLLRUNNING = true],poll.sh將實現類似;退出1

我的第二個想法是與touch.isrunning和聲明要求該文件。

你會怎麼做?

回答

1

pidof(8)支持-x標誌來指定腳本;它還支持-o omitpid標誌來省略特定的pid。所以:

#!/bin/bash 

PIDS=`pidof -o $$ -x poll.sh` 

if [ x$PIDS != x ] 
    then kill -s SIGTERM $PIDS 
fi 

sleep 10 
+0

這正是我所需要的。謝謝 :) – mherwig 2010-08-13 13:15:08

相關問題