Как я могу знать, когда задание крона было уничтожено, или оно отказало?

Обычный метод переопределяющих системных двоичных файлов должен установить новые двоичные файлы в /usr/local/bin (или sbin) и затем удостоверяясь это /usr/local/bin прибывает прежде /usr/bin в Вашем пути.

Обычно, Вы делаете это путем конфигурирования пакетов с --prefix=/usr/local, который заставляет их устанавливать свои двоичные файлы под /usr/local/bin, вместо того, чтобы делать каталог в /usr/local для каждого пакета.

Вы говорите, что существуют двоичные файлы в /usr/local/apache-ant-1.8.2/bin то, что Вы не хотите использовать? В этом случае я рекомендовал бы установить его под /usr/local/apache-ant-1.8.2 (как Вы делаете теперь), но затем делаете символьную ссылку в /usr/local/bin кому: ../apache-ant-1.8.2/bin/ant (вместо помещения /usr/local/apache-ant-1.8.2/bin в Вашем пути).

7
10.01.2012, 09:13
2 ответа

Для отладки этого, можно поместить

set -e -u

наверху Вашего сценария оболочки - это затем заканчивается ошибочным статусом выхода, когда команда перестала работать, или неопределенная переменная используется.

Затем можно назвать от задания крона сценарий обертки, который называет основной сценарий как это

sh -x main_script.sh || echo Failed with exit status: $?

С -x каждая строка распечатывается, прежде чем она будет выполнена. Вывод отправляется по почте демоном крона Вам.

Можно также использовать временный файл, когда вывод является слишком большим:

sh -x main_script.sh > $TEMPFILE 2>&1
if [ $? -ne 0 ]; then echo Failed with exit status $? - see $TEMPFILE; fi

В случае, если статус выхода > 128 команда была прервана сигналом - например, кто-то 'уничтожил' ее, отказ сегментации произошел или был situtation из памяти (как получить сигнал от статуса выхода).

6
27.01.2020, 20:16

Проверьте свои системные журналы. Который регистрируется для проверки на, зависят от установки; на Debian с установкой по умолчанию Вы добираетесь:

  • в /var/log/auth.log, уведомления, от когда задание крона, запущенное и законченное, потому что задание включило сессию PAM;
  • в /var/log/syslog, уведомление это grandchild #32283 failed with exit status 1.
  • дополнительное уведомление в /var/log/kern.log если Ваш процесс был завершен уничтожителем OOM.

Вы получите электронную почту от крона, если Ваше задание крона произведет вывод на своем стандартном выводе или стандартной погрешности (если Ваша система доставки местной почты не настраивается правильно). Вы не получите почту, если она бесшумно возвратит ненулевое состояние (который включает случай того, чтобы быть уничтоженным сигналом). Если Вы хотите уведомление, располагаете обертку оболочки, это является шумным в случае ошибки, например.

42 1 * * * /path/to/real/job || echo $?

Если Вы хотите зарегистрировать больше информации о процессах и как они умирают (и как они рождаются, но здесь Вы уже знаете), посмотрите, там журнал прошлых обсуждений, которые теперь закрываются?

6
27.01.2020, 20:16

Теги

Похожие вопросы