Я должен перезапустить shiny-server
(Новомодный сервис) на Ubuntu 12.04 в стандартном расписании.
Как правило, если я хочу перезапустить этот сервис вручную, я просто ввожу: sudo restart shiny-server
или service shiny-server restart
(как root
). Как я понимаю, это подобно чему-то как sudo restart mysql
.
Для планирования перезапуска я попробовал следующие записи в моем root
пользователь crontab
:
0 6 * * * restart shiny-server
0 6 * * * service shiny-server restart
0 6 * * * bash /home/local/ANT/raybao/dev/script.sh
Где последняя строка script.sh
service shiny-server restart
.
Ни одно из вышеупомянутого на самом деле не работает!
Таким образом, я довольно озадачиваюсь/путаюсь. Что я пропускаю?Спасибо!!
Больше информации для shiny-server
здесь: http://rstudio.github.io/shiny-server/latest/#upstart-ubuntu-12.04-through-14.10-redhat-6
Вы находитесь на корректном пути, добавляющем это к пользователю root cron
.
При использовании cron
, Вы хотите убедиться использовать все системные пути для команд и файлов. Можно использовать which
команда для обнаружения, где restart
расположен: which restart
. Для меня это показывает /sbin/restart
.
Так, с помощью этой информации крон выглядел бы следующим образом:
0 6 * * * /sbin/restart shiny-server
который перезапустил бы сервер в 6:00 системное время.
Когда cron
выполнения, это пошлет любой вывод по электронной почте пользователю, который выполняет задания крона. Если Вы не захотите это, которое Вы, вероятно, не делаете, то команда, которую Вы выполнили, будет похожа на это:
0 6 * * * /sbin/restart shiny-server > /dev/null 2>&1
Это произведет и stdout и stderr к /dev/null
, вместо того, чтобы быть считанным cron
.
Я первоначально неправильно понял и думал, что эта услуга работала использование init
, когда это на самом деле использует upstart
. Мораль истории остается использованием все системные пути при использовании cron
.