Crontab重新启动jboss服务器

我想创build一个crontab每晚重新启动我的jboss服务器。 没什么特别的,我觉得这很容易….

我有这个crontab:

0 22 * * * /home/user/SoftZ/jboss-5.1.0.GA/bin/jboss_restart.sh 

所以每天晚上22点,它会启动jboss_restart.sh,如下所示:

 #!/bin/sh echo restarting jboss >> /home/user/SoftZ/logz.log for pjboss in `ps -Af | grep -v grep | grep jboss | grep -v jboss_restart.sh | awk '{ print $2 }'` do kill -9 ${pjboss} echo Killing >> /home/user/SoftZ/logz.log done echo Starting >> /home/user/SoftZ/logz.log sh /home/user/SoftZ/jboss-5.1.0.GA/bin/run.sh -c all & echo Finish >> /home/user/SoftZ/logz.log 

所以这是基本的… cron启动良好,jboss_restart.sh也一切都logging在logz.log和jboss的活动进程被杀死,但run.sh不是开始…..我尝试了几个东西,如chmod在脚本上,更改命令和crontab的合成器,但没有任何工作。 这非常烦人

请问你能帮帮我吗。 提前致谢。

run.sh脚本将日志信息保存在控制台上。 如果你想在后台运行它,你应该:

  1. 将输出redirect到/dev/null

     run.sh -c all &> /dev/null & 
  2. closureslogin-conf.xml中的控制台日志logging。

但是我认为最好的解决办法是使用jboss_init_redhat.sh脚本。 您可以在bin目录中find它(与放置run.sh脚本的位置相同)。

jboss_init_redhat.sh脚本是run.sh中的包装器,它允许您将其用作Init V脚本 – 它具有诸如startstop类的参数。 你必须正确设置它,但它很容易 – 只需打开它并编辑一些bashvariables。

使用某个用户连接到JMX控制台时,可能会遇到一些问题。 在这种情况下,您必须修改该脚本并添加凭证 – 用于停止JBoss实例的JMX用途。

你必须修改JBOSS_CMD_STOPvariables并在那里添加你的证书。

我不太确定,但是你的cron脚本完成后,你的run.sh脚本会被杀死,因为你是在后台启动它(&)。 你可以尝试使用nohup来调用它,即使在cron过程完成时仍然保持运行,例如

 /usr/bin/nohup /home/user/SoftZ/jboss-5.1.0.GA/bin/run.sh -c all & 

当你想在远程机器上运行一个进程,但是在启动之后注销,这也是有效的。 也许试试看。