我有一个名为的脚本: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 $@
./tg/tgcli -s ./bot/bot.lua $@
fi
如果我的服务器重启
,我想在启动时运行此脚本(使用screen或tmux)我有Ubuntu 16.04版本
谢谢Ljm Dullaart
你能帮我这个吗?
答案 0 :(得分:0)
您可以检查run.sh是否正在运行,如果使用单个命令停止,则重新运行它:
$ if ! pgrep run.sh ;then /path/to/run.sh;fi
如果脚本运行,pgrep将返回退出状态0 =成功并将打印run.sh的pid 如果脚本没有运行,pgrep将返回退出状态1,然后将调用脚本。
您还可以使用pgrep inst.sh >/dev/null
来"静音"案例脚本运行时的pgrep。
答案 1 :(得分:0)
您不需要再次运行完整的bash脚本。改变
./tg/tgcli -s ./bot/bot.lua $@
到
while :; do
./tg/tgcli -s ./bot/bot.lua $@
done
每次退出时都会重启bot.lua。