2016-01-20 17 views
1

我正面臨一個問題。 我們有一個乾淨的腳本用於清理舊文件,有時我們需要停止它,稍後再啓動它。像下面的過程一樣。我們使用kill -STOP $pidkill -CONT $pid在check.sh控制clean.sh,$pid是clean.sh所有的PID(在那裏,他們是23939,25804):'殺-STOP和殺-CONT'是如何工作的?

root  4321 0.0 0.0 74876 1184 ?  Ss 2015 0:25 crond 
root  23547 0.0 0.0 102084 1604 ?  S  2015 0:00 \_ crond 
root  23571 0.0 0.0 8728 972 ?  Ss 2015 0:00  \_ /bin/bash -c bash /home/test/sbin/check.sh >>/home/test/log/check.log 2>&1 
root  23577 0.0 0.0 8732 1092 ?  S  2015 0:00   \_ bash /home/test/sbin/check.sh 
root  23939 0.0 0.0 8860 1192 ?  S  2015 0:45    \_ bash /home/test/bin/clean.sh 30 
root  25804 0.0 0.0 8860 620 ?  S  2015 0:00     \_ bash /home/test/bin/clean.sh 30 
root  25805 0.0 0.0 14432 284 ?  T  2015 0:00      \_ ls -d ./455bb4cba6142427156d2b959b8b0986/120x60/ ./455bb4cba6142427156d2b959b8b0986/80x 
root  25808 0.0 0.0 3816 432 ?  S  2015 0:00      \_ wc -l 

一旦check.sh停止乾淨.sh,幾小時後,check.sh啓動了clean.sh,但是有一件奇怪的事情,在停止並繼續之後,有一個子進程'ls -d ....',它仍然停止。

你能告訴我,如果它是由錯誤使用信號引起的?我該如何修改它?

回答

0

OK,同樣喜歡我的描述是不明確的,我的英語不好...... 不知道是什麼原因,但有一種方法來解答吧: 殺-CONT $ PID pkill的-CONT -P $ PID

這將繼續子進程。