Обычный метод переопределяющих системных двоичных файлов должен установить новые двоичные файлы в /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
в Вашем пути).
Для отладки этого, можно поместить
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 из памяти (как получить сигнал от статуса выхода).
Проверьте свои системные журналы. Который регистрируется для проверки на, зависят от установки; на 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 $?
Если Вы хотите зарегистрировать больше информации о процессах и как они умирают (и как они рождаются, но здесь Вы уже знаете), посмотрите, там журнал прошлых обсуждений, которые теперь закрываются?