Назад | Перейти на главную страницу

Запуск Ubuntu Crontab или сценария инициализации

Что я делаю не так с cron при загрузке?

Пример:

Для запуска вручную: screen -S example ./script.sh
Чтобы восстановить вручную: пример экрана -x

теперь я просто пытаюсь сделать то же самое (ну, часть запуска), используя cron при загрузке

@reboot cd / home / administrator / script && screen -S example ./script.sh

Думаю без экрана работает. Например:

@reboot cd / home / administrator / script && ./script.sh

но мне также нужно, чтобы это работало в фоновом режиме, независимо от терминала. Я пробовал другие варианты, такие как init, init.d, но, похоже, существует большая путаница в отношении того, как все это работает на каких версиях Linux. Если вы можете исправить мою ошибку выше или показать мне лучшее решение, это будет здорово.

Я использую Ubuntu 12.04.2 LTS

Спасибо

* ОБНОВИТЬ *

Итак, в ответ на Яна Викхольма, я попробовал абсолютный путь, и это совершенно не удалось.

пример

Если я протестирую это в консоли:

screen -S пример /home/administrator/script/script.sh

Скрипт не выполняется. Я упустил здесь что-то концептуальное?

Я сразу получаю сообщение об ошибке на экране [экран прерывается]

* РЕШЕНИЕ *

Наконец разобрался. Проблема с экраном заключалась в пути к исполняемому файлу.

Вот последняя запись crontab, которая работает как шарм

@reboot cd / home / administrator / script && / usr / bin / screen -dmS пример ./script.sh

Спасибо за помощь Ян

Наконец разобрался. Проблема с экраном заключалась в пути к исполняемому файлу.

Вот последняя запись crontab, которая работает как шарм

@reboot cd / home / administrator / script && / usr / bin / screen -dmS пример ./script.sh

Спасибо за помощь Ян

PS, да, я пытался ответить на него, но это не давало мне возможности в течение 8 часов, поэтому я просто опубликовал ответ в исходном посте.

Вы пробовали запустить его с:

nohup /path/to/script/script.sh &> /output/goes/here &

Это запустит сценарий, перенаправит как STDOUT, так и STDERR в файл, запустит его в фоновом режиме и скажет ему игнорировать сигналы зависания (поскольку его родительский процесс умирает).

Редактировать: Также было бы разумнее всегда оборачивать сценарии init / cron, чтобы строка, которую должен вызывать cron, сама по себе была просто сценарием, а не cd /where && ./script.sh. поэтому было бы лучше, если бы у вас был только /path/to/launcher.sh, который затем содержал «cd /where && screen foobar» и т. д.