Я хочу, чтобы служба systemd обрабатывала разветвление (мой файл сам по себе не обрабатывает разветвление. Поэтому для обработки я полагаюсь на systemd)
Мой файл .service:
[Unit]
Description=swamp services management service
After=syslog.target
[Service]
Type=forking
ExecStart=/usr/bin/swamp
[Install]
WantedBy=multi-user.target
Вопрос
Type=forking
Достаточно ли указать , чего я пытаюсь достичь? Или же это похоже на ожидание разветвления в upstart, которое фактически говорит upstart (если я правильно понимаю, не уверен, что понимаю, я новичок в написании начальных скриптов), что мой сервис будет обрабатывать разветвление / демонизацию.
oneshot
(типичный краткосрочный сценарий), либоsimple
(длительно работающий сервис, который не выполняет форк + выход).&
?Если вы хотите, чтобы systemd обрабатывал разветвления, вам следует использовать, например,
Type=simple
илиType=notify
. Тогда systemd сделает для вас ответвление.Если вы можете изменить
swamp
исполняемый файл, тоType=notify
это лучшее решение. Затем исполняемый файл должен уведомить systemd об успешной инициализации. Это означает, чтоsystemctl start swamp
будет ждать инициализации swamp при вызове из командной строки и печатать любое сообщение об ошибке при инициализации в командной строке, что обычно требуется.Для примера исполняемого файла, написанного для использования Type = notify, см. Следующий скрипт:
источник