我在solaris服务器上运行了Java服务。我需要终止此服务,并每天晚上在指定时间重新启动它。因此,我设置了cron作业来执行相同操作。当我通过命令行手动执行脚本时,脚本运行良好。但是当我将其设置为cron作业时,它仅执行一半,即仅杀死该进程但不启动它。请帮助我。以下是详细信息:
重新启动脚本:
#!/bin/sh
pkill -u peri java 2>> /dev/null
sleep 3
cd /opt/home/peri/utils/jsb
. /opt/home/peri/utils/jsb/pjsb.new
sleep 3
cd /opt/jar
MonitorExt.sh & > /dev/null
在这里pkill杀死了Java进程。脚本pjsb.new是用于启动Java进程的脚本。另外,还有一个脚本MonitorExt.sh用于启动另一个Java进程。
任何帮助都非常感谢!!!!
提前致谢
最佳答案
1)在“ root”用户下,在/ var / cron / log中检查一些cron错误消息
2)通常,当手动执行命令/脚本但不在cron作业中正常运行时,这是因为在cronjob上下文中未设置某些环境变量。
因此,您应该确保在cron作业中运行时,实际上已设置了默认外壳程序中自动设置的所有必需环境变量($ HOME,$ JAVA等)。
我通常在脚本内或cronjob行中调用配置文件脚本:
15 17 * * *。 $ HOME / .profile && $ HOME / script.sh
3)您还应该为所有脚本和命令选择完整路径:
/ usr / bin / pkill
/路径/MonitorExt.sh
...