Сервер Ubuntu 16.04, работающий в Virtual Box.
У меня был сервер, который мне нужно было перестроить (не было резервных копий) . Я скопировал все соответствующие скрипты, которые мне нужно было повторно использовать, и все работают, как ожидалось, кроме одного, который вызывается из корневого cron. Раньше это работало хорошо и без проблем. Сценарий запускает блокнот jupyter в сеансе экрана и при ручном выполнении выполняет то, что должен делать. Сценарий:
#!/bin/bash
# cd /home/<username>/jupyternb
screen -S jupyter -dm jupyter notebook
Строка crontab выглядит следующим образом:
@reboot sh /home/<username>/.STARTUP_SCRIPTS/start_jupyter.sh
(
Разрешения сценария оболочки - 777.
syslog показывает, что сценарий вызывается как root, и сообщает нет проблем.
Любые указатели приветствуются.
Я решил эту проблему, удалив cron из уравнения. https://forums.fast.ai/t/run-jupyter-notebook-on-system-boot/749/5 страница очень помогла.
Ниже приведен файл jupyter.service Мне пришлось создать по адресу /etc/systemd/system.[1225 impression Затем выполнить следующее:
systemctl enable jupyter.service
systemctl daemon-reload
systemctl restart jupyter.service
Всем спасибо.
Если системный журнал показывает, что задание вызывается, то это может быть проблема пути.
Попробуйте поместить весь путь / usr / bin / screen
в скрипт вместо команды screen
.
#!/bin/bash
# cd /home/<username>/jupyternb
/usr/bin/screen -S jupyter -dm jupyter notebook
Также вам необходимо иметь конец строки после каждой строки в crontab, если это последняя строка и нет символа конца строки, задание не начнется.
Попробуйте проверить с помощью команды mail
системную почту пользователя root или используйте MAILTO =
в cron, чтобы получить электронную почту, которая может содержать более подробную информацию, если что-то не удается при запуске cron.