Настройка простого сервиса с помощью systemd

Мы используем сервер Bamboo для дальнейшей интеграции с удаленными агентами, которые строят наши проекты. Этот агент можно запустить с помощью простого сценария оболочки (который отлично работает). Но я подумал, что еще больше systemd его и сделаю блок systemd который сделает автозапуск агента после загрузки, и это позволит людям запускать / останавливать его с помощью команд systemctl . Так вот что я пробовал

 [Unit] Description=Atlassian Bamboo Agent After=syslog.target network.target [Service] Type=forking User=shub Group=shub ExecStart=/home/shub/bamboo-agent-home/bin/bamboo-agent.sh start ExecStop=/home/shub/bamboo-agent-home/bin/bamboo-agent.sh stop [Install] WantedBy=multi-user.target 

Чем я сделал systemctl daemon-reload . Проблема заключается в том, что после перезагрузки агент не запускается, а также он действует странно (таким образом, что служба перезапускает себя время от времени или не появляется должным образом после systemctl start ). Так что я делаю неправильно? Я думал об изменении Type на simple но я хочу, чтобы агент запускался в качестве фоновой службы (а сам сценарий запускает агент на фоне после выполнения).

One Solution collect form web for “Настройка простого сервиса с помощью systemd”

Вы задали несколько вопросов. Я отвечу на вопрос: «Почему моя пользовательская система systemd не запускается при загрузке?»

Ответ заключается в том, что вы не включили его. Когда вы запустите systemctl enable my-service-name , будет действовать блок [Install] в вашем файле Unit.

В этом случае вы проинструктировали systemd запустить сервис как часть достижения multi-user.target .

Запуск команды enable создаст символическую ссылку в /etc/systemd/system/multi-user.target.wants/ и наличие этой символической ссылки – это то, что на самом деле даст команду systemd запустить службу при загрузке.

Я предлагаю превратить ваш «действующий странный» комментарий в отдельный вопрос, где предоставляется более подробная информация, возможно, с подробностями из журнала systemd о том, что происходит. (проверьте вывод journalctl ).

  • Как просмотреть полный журнал из службы статуса systemctl?
  • Почему «init 0» приводит к «избыточным аргументам» при установке Arch?
  • Debian systemd network-online.target не работает?
  • Linux: создание сеансов «экрана» сохраняется в Debian «jessie»
  • Как изменить значения по умолчанию для директив в systemd?
  • Сила systemd для проверки состояния службы через n секунд
  • Как запустить службу systemd после команды mount
  • перезапустить службу после установки устройства
  • Автоматическое прекращение процесса systemctl
  • Как использовать службы systemd в / usr / lib / systemd /?
  • cgroups / systemd: Как создать группу для дерева процессов
  • Linux и Unix - лучшая ОС в мире.