Как правильно прописать автозапуск бинарного файла в Cron?
В crontab -e прописано: @reboot /usr/local/etc/rc.d/blog .
После перезагрузки бинарник не запускается либо запускается с ошибками. В логах ничего вразумительного не нашел.
blog - скомпилированное в golang'е приложение, должно поднимать движок сайта с неким функционалом.
Если в кроне ничего не прописывать, а запускать файл командой service blog start или по пути /usr/local/etc/rc.d/blog - все работает, можно зайти по http.
После того, как прописываешь в crontab нельзя запустить и по команде - приложение срабатывает и, насколько я понимаю, вылетает, http недоступен.
После перезагрузки бинарник не запускается либо запускается с ошибками
Если в кроне ничего не прописывать, а запускать файл командой service blog start или по пути /usr/local/etc/rc.d/blog - все работает, можно зайти по http.
После того, как прописываешь в crontab нельзя запустить и по команде - приложение срабатывает и, насколько я понимаю, вылетает, http недоступен.
Что за ошибки, где логи ошибок? Телепаты все в школе.
То, что приложение упало - это предположение, основанное на: 1) при запуске приложения через команду service blog start он выдает стартовое сообщение (listening on port:80) и возвращается в командный режим;
2) http недоступен .
При отсутствующей задаче в кроне все работает нормально - в консоли работает приложение, http работает.
Нижеследующее это из messages , вроде бы туда заносятся основные ошибки?
Mar 26 12:19:14 wargych sshd[711]: fatal: Unable to negotiate with 103.207.39.211 port 61850: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1 [preauth]
Mar 26 13:11:29 wargych sshd[810]: fatal: Unable to negotiate with 103.207.39.211 port 53279: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1 [preauth]
Так понимаю, что это реакция на попытку запуска из консоли.
Отдельно логгирование ошибок в приложении я пока не прописывал.
1) при запуске приложения через команду service blog start он выдает стартовое сообщение (listening on port:80) и возвращается в командный режим;
Ну вы чего ждали? Вы же запускаете приложение как сервис.
2) http недоступен .
Смотрите логи ПРИЛОЖЕНИЯ. Автор приложения вы?
А вообще, чтобы было проще, остановите ВСЕ процессы вашего приложения и запустите бинарник просто из консоли. Если появятся ошибки, то кидайте сюда. А то что вы скинули выше, вообще не про ваш блог.
Перед ответом - спасибо, что терпеливо помогаете.
Раньше ни с администрированием, ни с unix - системами дела не имел, дается тяжко ))
Поступил следующим образом - убрал из крона все команды на запуск, перезагрузил сервер.
При запуске как сервиса - все работает ок.
При запуске по прямому пути - приложение загружается, но паникует из-за того, что не может найти статические файлы, конкретнее - шаблоны, которые лежат в корне системы и прекрасно цепляются при запуске как сервис. Такого я не ожидал )
Все оказалось просто:
в моем случае при запуске задания крон пытался его запустить из корневой директории root, а статические файлы приложения (templates) при этом не подхватываются;
оказалось достаточно перед путем к файлу указать путь к директории с файлом:
@reboot cd /usr/local/etc/rc.d/; /usr/local/etc/rc.d/blog - и все заработало
Как раз чтобы при старте системы запускалось, чего не происходит.
В /etc/rc.conf прописано blog_enable="YES" , но чтобы это заработало, так понимаю, что нужно написать некий конфиг.