Написание сценария systemd

У меня есть процесс, который мне нужно запустить при запуске. Это то, что должно работать все время, пока машина включена. На данный момент я просто набираю следующее в bash все, что запускаю мой сервер.

command -f argument & disown

Я знаю, что мне нужно сделать сценарий инициализации, но я понятия не имел, как. После некоторых исследований кажется, что Ubuntu использует systemd (в некоторых ссылках сказано, что Upstart не так?) В качестве системы инициализации. Но все руководства, которые я нашел в Интернете, говорят мне, чтобы поместить мой исполняемый файл в /etc/init или /etc/init.d. Предполагается, что init - это совершенно другая система инициализации.

Может кто-нибудь указать мне правильное направление? Пример сценария systemd или даже онлайн-руководство будет очень полезным.

3
задан 10 May 2017 в 19:36

1 ответ

Вам нужны два файла:

  1. Ваш файл сценария:

    command.sh
    
  2. .service файл, который будет помещен в /etc/systemd/system и, учитывая разрешение 644 с chmod 664 command.service:

    command.service
    
  3. Самое простое содержание command.service был бы:

    [Unit]
    Description=Some service description
    
    [Service]
    ExecStart=/bin/bash -c "/path/to/command.sh -f argument & disown"
    
    [Install]
    WantedBy=multi-user.target
    
  4. Теперь, чтобы заставить его запуститься при начальной загрузке мы используем systemd контроллер systemctl:

    sudo systemctl enable command
    
    # or 
    
    sudo systemctl enable command.service
    

Обратите внимание, что намного больше опций доступно для различных разделов, видит здесь и удостоверяется Ваш command.sh исполняемый файл с chmod +x command.sh

5
ответ дан 11 May 2017 в 05:36

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

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