查看在目录/home/smart/SmartJob下的是否存在脚本文件daemon.sh,内容如下:
#!/bin/sh
echo "" >> /home/smart/SmartJob/log/daemon.log
date >> /home/smart/SmartJob/log/daemon.log
echo "===============================" >> /home/smart/SmartJob/log/daemon.log
jps |grep SmartJob >> /home/smart/SmartJob/log/daemon.log
echo "-------------------------------" >> /home/smart/SmartJob/log/daemon.log
ps -ef|grep SmartJob |grep -v grep >> /home/smart/SmartJob/log/daemon.log
echo "" >> /home/smart/SmartJob/log/daemon.log
(如果不存在则创建之)
为其设置可执行权限
[smart@localhost SmartJob]$ chmod +x daemon.sh
修改原有的smartjob.sh文件,修改后内容如下:
#/bin/sh
source /etc/profile
source /home/smart/.bash_profile
cd /home/smart/SmartJob
CLASSPATH=`find "." -name '*.jar'|xargs echo | tr ' ' ':'`
########## DM ##########
#CLASSPATH=$CLASSPATH:./conf/Dm7JdbcDriver17.jar
########## Kingbase ##########
CLASSPATH=$CLASSPATH:./conf/kingbasejdbc4.jar
jps|grep SmartJob
if [ $? -ne 0 ]
then
nohup java -Djava.net.preferIPv4Stack=true -cp $CLASSPATH com.sf.smartjob.main.SmartJob &
fi
(其中CLASSPATH根据数据库类型进行选择)
在crontab中增加看护定时任务,每分钟执行一次:
在crontab中增加启动定时任务,每天执行一次:
[smart@localhost SmartJob]$ crontab -e
#增加下面这一行,用于监视SmartJob状态:
* * * * * /home/smart/SmartJob/daemon.sh
#增加下面这一行,用于每天晚上23:55尝试拉起SmartJob:
55 23 * * * /home/smart/SmartJob/smartjob.sh
然后保存并退出
等待一分钟后,查看是否生成了文件/home/smart/SmartJob/log/daemon.log
继续等待一整天,然后查看其中的内容即可搞清楚SmartJob具体是哪一分钟退出的。