我有一个服务器”Node.js 服务器.js“并且我希望它在崩溃后立即重新启动,但前提是上次重新启动时间超过一秒。如果服务器立即退出,这将防止我的电子邮件被淹没。
这是start_server.sh
重新启动它的。我把它放在@reboot
crontab 中,当服务器启动时它启动得很好。
但是我如何start_server.sh
从终端运行并稍后关闭终端并且它应该可以正常工作而无需退出?
我已经尝试过nohup start_server.sh
,但这不起作用。我还想将 STDOUT 重定向到日志文件。
启动服务器.sh
#!/bin/sh
set -x
count=0
while :
do
if test $count -lt 40
then
mail -s "server.js started just now" [email protected] < /dev/null
fi
count=`expr $count + 1`
date1=`date +%s` #get unix time
cd /home/login/railways/nodejs
echo "Starting time is $date1"
/usr/bin/nodejs server.js >> server.log
date2=`date +%s` #get unix time
if test $date1 -eq $date2
then
msg="exiting as process has failed"
echo $msg
if test $count -lt 40
then
mail -s $msg [email protected] < /dev/null
fi
sleep 10
fi
echo "restarting the process"
sleep 1
done