1

我有一个在 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 进程。

非常感谢任何帮助!!!!提前致谢

4

1 回答 1

1

1) 在用户 'root' 下,检查 /var/cron/log 中的一些 cron 错误消息

2)通常当命令/脚本手动运行良好但不能在 cron 作业中运行时,这是因为某些环境变量未在 cronjob 上下文中设置。所以你应该确保在你的默认 shell 中自动设置的所有必要的环境变量($HOME、$JAVA、...)在 cron 作业中运行时都已实际设置

我通常在脚本或 cronjob 行中调用配置文件脚本:
15 17 * * * 。$HOME/.profile && $HOME/script.sh

3)您还应该更喜欢所有脚本和命令的完整路径:
/usr/bin/pkill
/path/MonitorExt.sh
...

于 2013-10-10T12:52:55.240 回答