Назад | Перейти на главную страницу

Crontab для перезапуска сервера jboss

Я хочу создать crontab для перезапуска моего сервера jboss каждую ночь. Ничего особенного, и я подумал, что это будет легко ....

Получил вот такой кронтаб:

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 тоже, все регистрируется в logz.log, и активный процесс jboss убит, но run.sh не запускается ... Я пробовал несколько вещей, таких как chmod в скрипте измените синтаксис команды и crontab, ... но ничего не работает. Это очень раздражает.

Не могли бы вы мне помочь, пожалуйста. Заранее спасибо.

Я не совсем уверен в этом, но, возможно, ваш звонок в run.sh скрипт завершается после завершения вашего скрипта cron, поскольку вы запускаете его в фоновом режиме (&). Вы можете попробовать позвонить с помощью nohup чтобы он работал даже после завершения процесса cron, e. грамм.

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

Это также работает, когда вы хотите запустить процесс на удаленном компьютере, но выйти из системы после его запуска. Может, попробуй.

В run.sh Скрипт сохраняет информацию о логах на консоли. Если вы хотите запустить его в фоновом режиме, вам следует:

  1. Перенаправить вывод на /dev/null:

    run.sh -c all &> /dev/null &
    
  2. Отключите логирование консоли в login-conf.xml.

Но я думаю, что лучшим решением будет использование jboss_init_redhat.sh сценарий. Вы можете найти его в bin каталог (там же, где run.sh скрипт размещен).

В jboss_init_redhat.sh сценарий является оболочкой run.sh которые позволяют использовать его как скрипт Init V - он имеет такие параметры, как start, stop. Вы должны правильно настроить его, но это довольно просто - просто откройте его и отредактируйте некоторые переменные bash.

У вас могут возникнуть проблемы, когда вы используете какого-либо пользователя для подключения к консоли JMX. В этом случае вам нужно изменить этот сценарий и добавить учетные данные - использование JMX для остановки экземпляра JBoss.

Вы должны изменить JBOSS_CMD_STOP переменную и добавьте туда свои учетные данные.