Я новичок в 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 директиве, это будет оценено.
Таким образом, оказалось, что команда, выполняемая с конфигурацией 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
Таким образом, оказалось, что команда, выполняемая с конфигурацией 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
Таким образом, оказалось, что команда, выполняемая с конфигурацией 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