2014-10-30 45 views
1

這裏是我的script.sh爲什麼nohup不啓動我的腳本?

for ((i=1; i<=400000; i++)) 
do 
    echo "loop $i" 
    echo 
    numberps=`ps -ef | grep php | wc -l`; 
    echo $numberps 
    if [ $numberps -lt 110 ] 
    then 
    php5 script.php & 
    sleep 0.25 
    else 
    echo too much process 
    sleep 0.5 
fi 
done 

當我啓動它:

./script.sh > /dev/null 2>/dev/null & 

當我從SSH註銷並重新登錄,除了的作品,我不能停止腳本kill%1jobs -l爲空

當我嘗試使用

nohup ./script.sh & 

它只是。OUPUTS

nohup: ignoring input and appending output to `nohup.out' 

但沒有PHP5運行命令:nohup具有在所有

沒有效果我有2個aleternatives解決我的問題:

1)./script.sh > /dev/null 2>/dev/null & 如果我從SSH註銷並再次登錄,如何刪除此作業?

or 2)如何使nohup正確運行?

有什麼想法?

+1

你的意思是'發射'還是有'午餐'的實際術語,在這裏我不知道?嚴重的問題。 – Compass 2014-10-30 17:40:19

+0

對不起..當然是推出:D – yarek 2014-10-30 17:41:43

+0

想到各種定製解決方案,但你有沒有嘗試像'supervisord'這樣的東西現成的解決方案? – Wrikken 2014-10-30 17:44:28

回答

1

nohup不應允許您使用jobs -lkill %1在註銷後再次中止作業。

相反,你可以

  • 運行在一個GNU Screen或TMUX會話,它可以讓你退出,登錄,重新連接,並繼續在同一會話在前臺腳本。
  • killall script.sh殺死服務器上運行的所有運行實例script.sh
+0

killall script.sh:我登出並重新登錄後找不到進程! – yarek 2014-10-30 18:05:52

+0

@ user300675如果您收到錯誤消息,請複製粘貼命令和整個消息,而不是從內存中輸入消息。精確的空格是很重要的,因爲它指向引用錯誤,確切的措詞很重要,因爲它標識了工具的版本,而整個未縮寫的命令和輸出可以爲英文消息文本沒有的問題提供重要線索。 – 2014-10-30 18:12:07

+0

root @ email1:/ var/www#killall script.sh script.sh:找不到進程 – yarek 2014-10-30 18:13:25

相關問題