서버가 있어요"Node.js 서버.js"그리고 충돌 직후 다시 시작하고 싶지만 마지막 다시 시작이 1초보다 긴 경우에만 가능합니다. 이렇게 하면 서버가 즉시 종료되어도 내 이메일이 넘쳐나는 것을 방지할 수 있습니다.
이것이 start_server.sh
다시 시작되는 것입니다. 나는 그것을 @reboot
crontab에 넣었고 서버가 시작되었을 때 정상적으로 시작되었습니다.
하지만 어떻게 start_server.sh
터미널에서 실행하고 나중에 터미널을 닫을 수 있습니까? 그러면 종료하지 않고도 제대로 작동할까요?
나는 이것을 시도했지만 nohup start_server.sh
작동하지 않습니다. 또한 STDOUT을 로그 파일로 리디렉션하고 싶습니다.
server.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