Перезапуск файла сценария Tomcat запускается вручную, но на Crontab происходит сбой - PullRequest
0 голосов
/ 06 июля 2018

Я новичок в сценариях оболочки. У меня есть сервер Tomcat на: /APP/apache-tomcat-7.0.42

Я хочу, чтобы мой tomcat автоматически перезагружался один раз в день, поэтому я пишу файл test.sh (/APP/apache-tomcat-7.0.42/test.sh) с содержанием:

/APP/apache-tomcat-7.0.42/bin/shutdown.sh && echo "Tomcat was already shutdown"
kill -9 $(lsof -t -i:8080 -sTCP:LISTEN)
/APP/apache-tomcat-7.0.42/bin/startup.sh

И я устанавливаю на crontab: 0 9 * * * /APP/apache-tomcat-7.0.42/test.sh

Но не работает, хотя я пытаюсь запустить вручную, и успех.

Я проверил crontab: /etc/init.d/crond статус, он работает.

Я не понимаю, помоги мне!

1 Ответ

0 голосов
/ 09 июля 2018

О, я восстановился!

Если вы можете сделать это вручную, из сеанса входа в систему, но не автоматически из при запуске или из cron, я на 99% уверен, что это потому, что переменные среды, такие как JAVA_HOME и CATALINA_HOME не устанавливаются для сред запуска и cron.

Вам необходимо получить информацию в этой сессии:

> echo $ JAVA_HOME

> JAVA_HOME = "/ usr / java / jdk1.6.0_41"

> echo $ CATALINA_HOME

> CATALINA_HOME = "/ APP / apache-tomcat-7.0.42"

Тогда, файл результата crontab:

export PATH = "/ usr / lib64 / qt-3.3 / bin: / usr / kerberos / sbin: / usr / kerberos / bin: / usr / local / bin: / bin: / usr / bin: / USR / местные / SBIN: / USR / SBIN: / SBIN: / Главная / кот / бен "

export JAVA_HOME = "/ usr / java / jdk1.6.0_41"

export CATALINA_HOME = "/ APP / apache-tomcat-7.0.42"

/ APP / апач-кот-7.0.42 / бен / shutdown.sh

kill -9 $ (lsof -t -i: 8080 -sTCP: LISTEN)

/ APP / апач-кот-7.0.42 / бен / startup.sh

...