Выполнение крона, но CMD, не работающий

Я просто переключился на сервер Ubuntu 14.04 с 11,04 серверов. В/var/spool/cron/crontabs/root у меня есть строка:

* * * * * /root/arewerunning.sh > /root/appmon.log

arewerunning.sh похож на это:

#!/bin/sh

if P=$(pgrep aserver)
then
  echo  " "
else
  echo "aserver has stopped. System Will reboot"
sudo reboot now
fi

На 11,04 серверах это работало. Каждый раз, когда я уничтожил aserver, система перезагрузит. Но на 14,04 команда, кажется, работает, но система не перезапускает. cron.log похож:

(root) CMD (/root/arewerunning.sh > /root/appmon.log)

когда процесс не был уничтожен и как:

(root) CMD (/root/arewerunning.sh > /root/appmon.log)
(CRON) info (No MTA installed, discarding output)

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

Я попытался выполнить команду за пределами крона, и это работает просто великолепно. Я использую прямой путь так, чтобы не должна была быть проблема. Я также попытался добавить "sh" перед командой. appmon.log ничего не показывает. Я попытался поместить другие команды в файл, и они работают просто великолепно.

1
задан 26 September 2016 в 20:09

1 ответ

Я понял это! Проблемой была проблема пути для перезагрузки. Я должен был поместить "sudo/sbin/reboot теперь" в arewerunning.sh. Я читал о проблемах пути для других команд, но не помещал два и два вместе, что перезагрузка была также командой, в путь которой, возможно, вмешались.

0
ответ дан 8 December 2019 в 08:45

Другие вопросы по тегам:

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