systemd висит, когда я запускаю или перезапускаю службу

Я новичок в systemd после обновления до 16.04, и у меня возникла проблема с запуском и перезапуском служб. Когда я запускаю (например) ...

systemctl start djalbat.com

... похоже, что работает, но я не получаю подсказку назад, она просто кажется зависающей. Если я ctrl-c, чтобы вернуть запрос, а затем проверить, запущена ли служба, похоже, это было сделано. Интересно, что есть в конфигурации, которая может вызвать это? Вот он:

[Unit] Description=djalbat.com [Service] Type=forking WorkingDirectory=/var/www/djalbat.com/ ExecStart=/usr/bin/node ./bin/main.js start 2>&1 >> /var/log/djalbat.com.log [Install] WantedBy=multi-user.target

Кроме того, если кто-то может указать на необходимость в последней WantedBy директиве, это будет оценено.

1
задан 10 February 2018 в 17:40

3 ответа

Таким образом, оказалось, что команда, выполняемая с конфигурацией ExecStart, не была вилкой, тогда как служба systemd была настроена для исполняемого файла forking. Это приведет systemctl дождаться появления исполняемого файла, ведущего к не возвращающейся командной строке.

Правильная конфигурация исполняемого файла, которая не fork , должна использовать .

[Unit]
Description=djalbat.com

[Service]
Type=simple
WorkingDirectory=/var/www/djalbat.com/
ExecStart=/usr/bin/node ./bin/main.js start 2>&1 >> /var/log/djalbat.com.log

[Install]
WantedBy=multi-user.target

Для подключения этого устройства к цели требуется WantedBy, поэтому этот аппарат или услуга запускаются автоматически при достижении соответствующей цели и активации службы для автоматического запуска с помощью [ ! d4]

systemctl enable djalbat

Не забудьте обновить systemd после внесения изменений в ваши служебные файлы с помощью

systemctl daemon-reload
2
ответ дан 22 May 2018 в 13:11

Таким образом, оказалось, что команда, выполняемая с конфигурацией ExecStart, не была вилкой, тогда как служба systemd была настроена для исполняемого файла forking. Это приведет systemctl дождаться появления исполняемого файла, ведущего к не возвращающейся командной строке.

Правильная конфигурация исполняемого файла, которая не fork , должна использовать Type=simple.

[Unit] Description=djalbat.com [Service] Type=simple WorkingDirectory=/var/www/djalbat.com/ ExecStart=/usr/bin/node ./bin/main.js start 2>&1 >> /var/log/djalbat.com.log [Install] WantedBy=multi-user.target

Для подключения этого устройства к цели требуется WantedBy, поэтому этот аппарат или услуга запускаются автоматически при достижении соответствующей цели и активации службы для автоматического запуска с помощью [ ! d4] systemctl enable djalbat

Не забудьте обновить systemd после внесения изменений в ваши служебные файлы с помощью

systemctl daemon-reload
3
ответ дан 17 July 2018 в 21:08

Таким образом, оказалось, что команда, выполняемая с конфигурацией ExecStart, не была вилкой, тогда как служба systemd была настроена для исполняемого файла forking. Это приведет systemctl дождаться появления исполняемого файла, ведущего к не возвращающейся командной строке.

Правильная конфигурация исполняемого файла, которая не fork , должна использовать Type=simple.

[Unit] Description=djalbat.com [Service] Type=simple WorkingDirectory=/var/www/djalbat.com/ ExecStart=/usr/bin/node ./bin/main.js start 2>&1 >> /var/log/djalbat.com.log [Install] WantedBy=multi-user.target

Для подключения этого устройства к цели требуется WantedBy, поэтому этот аппарат или услуга запускаются автоматически при достижении соответствующей цели и активации службы для автоматического запуска с помощью [ ! d4] systemctl enable djalbat

Не забудьте обновить systemd после внесения изменений в ваши служебные файлы с помощью

systemctl daemon-reload
3
ответ дан 23 July 2018 в 21:48

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

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