2017-04-07 113 views
0

我有這個名字的腳本:Run.sh腳本來檢查腳本運行並啓動它,如果它停止

我運行此腳本使用此命令:

./run.sh 

我不像停止這個腳本,但是這個腳本突然停下來,需要再次運行。

我需要一個腳本來檢查它,如果我的run.sh停止了,再次運行它。

這是run.sh代碼:

#!/usr/bin/env bash 


install() { 
     sudo apt-get update 
     sudo apt-get upgrade 
} 

if [ "$1" = "install" ]; then 
    install 
    else 

if [ ! -f ./tg/tgcli ]; then 
    echo "tg not found" 
    echo "Run $0 install" 
    exit 1 
fi 

    #sudo service redis-server restart 
    #./tg/tgcli -s ./bot/bot.lua -l 1 -E [email protected] 
    ./tg/tgcli -s ./bot/bot.lua [email protected] 
fi 

,我想在開機(屏幕或TMUX)運行此腳本,如果我的服務器重啓

我有Ubuntu的16.04版本

謝謝你Ljm Dullaart

你能幫我解答嗎?

回答

0

你不應該需要再次運行完整的bash腳本。更改

./tg/tgcli -s ./bot/bot.lua [email protected] 

while :; do 
    ./tg/tgcli -s ./bot/bot.lua [email protected] 
done 

將重新啓動退出bot.lua每次。

+0

謝謝你的工作 – Nomad

+0

你能幫我在啓動時運行嗎? – Nomad

0

如果你的run.sh運行您可以檢查,如果停止使用一個命令重新運行它:

$ if ! pgrep run.sh ;then /path/to/run.sh;fi 

如果腳本運行p纖ep將返回退出狀態0 =成功,將打印的PID run.sh
如果腳本不運行,pgrep將返回退出狀態1,然後腳本將被調用。

您還可以使用pgrep inst.sh >/dev/null在腳本運行時「靜音」pgrep。

+0

謝謝,但我需要經常檢查!你能幫我在啓動時運行我的腳本嗎? – Nomad

相關問題