2014-01-15 28 views
1

我有一個簡單的腳本來檢查要下載的文件。 問題是一段時間後,我可以看到他跑多次,開始在不同的時間,儘管我一開始他只有一次:Ps aux:多次顯示相同的腳本

ps aux | grep _db 
root  2804 0.0 0.0 11288 1756 ?  S 00:26 0:06 /bin/bash /script/downloader/downloader_db.sh 
root  8606 0.0 0.0 11284 872 ?  S 12:18 0:00 /bin/bash /script/downloader/downloader_db.sh 
root  8649 0.0 0.0 11168 680 pts/0 S 12:18 0:00 /bin/bash /script/downloader/downloader_db.sh 
root  11552 0.0 0.0 11272 860 ?  S 11:25 0:00 /bin/bash /script/downloader/downloader_db.sh 
root  11562 0.0 0.0 11152 672 pts/0 S 11:25 0:00 /bin/bash /script/downloader/downloader_db.sh 
root  39150 0.0 0.0 11172 1644 pts/0 S 10:51 0:01 /bin/bash /script/downloader/downloader_db.sh 

我用nohup的啓動腳本rc.local中:

nohup /script/downloader/downloader_db.sh &> /dev/null & 

腳本:

#!/bin/bash 

while true; do 

    while IFS=$'\t' read -a line; do 
     ... 
    sleep 2 
    done < <(mysql --batch -u${user} -p${password} ${database} -e "${query}" -h ${host}) 
    sleep 10 
done 

回答

3

while循環任何在後臺運行?可以想象它具有與父進程相同的名稱。

您可以通過運行ps wafux並查看進程樹來檢查某些進程是否是子進程。

如果它們彼此不「相關」,那麼很可能只是多次運行該腳本,而其他進程尚未完成。

+0

你是完全正確的。我從這個腳本發送另一個nohup進程。 – Orlo

相關問題