一个程序经常挂掉,不想人为的一种手动重启
故写了一个脚本,定时查看程序是否存在,不存在就重启
但是过程中一直crontab 设置的定时器一直不执行
crontab -e
*/1 * * * * /opt/speak/start.sh
start.sh内容
#!/bin/sh
pid=`ps ax | grep speaker.jar | grep java | awk '{print $1}'`
if [ "$pid" != "" ]
then
echo "speaker.jar service has been started!"
else
java -Xms2048m -Xmx20480m -Dspeaker -jar speaker.jar &
echo "speaker.jar service started successfull!"
fi
exit 0
后来经查阅资料,需要jdk环境变量和路径,最重要的是路径,切换路径!切换路径!切换路径!重要的事说三遍,还有java环境变量的导入生效!!!!
#!/bin/sh
#很重要
#====================
source /etc/profile
cd /opt/speak
#====================
pid=`ps ax | grep speaker.jar | grep java | awk '{print $1}'`
if [ "$pid" != "" ]
then
echo "speaker.jar service has been started!"
else
java -Xms2048m -Xmx20480m -Dspeaker -jar speaker.jar &
echo "speaker.jar service started successfull!"
fi
exit 0