测试场景说明(操作系统:centos7):
有一个bash脚本,脚本内容是执行某个java程序,该脚本为 /data/project1/start.sh
crontab -e,添加了以下任务:
0 1 * * * /data/project1/start.sh
该配置设定了每天1点执行 /data/project1/start.sh,start.sh里最终是类似这样执行java程序:
/usr/java/jdk1.8.0_71/bin/java -classpath "/data/project1/lib/xxx.jar:/data/project1/lib/xxx.jar:.." MainClass
但是一直没有成功执行java程序。
经过大量查阅论坛帖子和反复尝试终于找到了解决方法。需要把crontab配置为如下:
0 1 * * * (cd /data/project1; nohup sh ./start.sh &)
注意:start.sh里用到的所有路径,诸如java,jar,目录等,都需要使用绝对路径