Я пытаюсь загрузить скрипт при загрузке в Ubuntu Server 18.04. Мой сценарий .service установлен в / etc / systemd / system, и я могу service my-service start
и service my-service stop
, но когда я пытаюсь запустить при загрузке (что, согласно Интернету, я должен сделать) с service my-service enable
, система отвечает my-service: unrecognised service
Поиск в Интернете говорит только о том, как это сделать в более старых версиях Ubuntu, которые не относятся к 18.04, и я не могу определить правильную терминологию, чтобы найти ответ.
сценарий:
# filename: /etc/systemd/system/my-service.service
[Unit]
Description=My Service
After=network.target
After=mysqld.service
[Service]
User=the-user
WorkingDirectory=/home/the-user/path-to-script
ExecStart=/home/the-user/path-to-script/start.sh
SuccessExitStatus=0
TimeoutStopSec=10
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
Вопрос (очевидно): что я делаю не так? Как я могу запустить этот сервис при загрузке?
Заранее спасибо
Ремон
Используйте настоящую команду, которая для systemd будет:
sudo systemctl enable my-service
Для справки, вам не нужно использовать основной системный каталог для файла модуля, если вы этого хотите. запустить для обычного пользователя, например твой собственный. Вы можете создать его в каталоге, таком как:
~/.config/systemd/user/
Тогда вы можете сделать:
systemctl --user enable my-service
Это позволяет избежать необходимости sudo
Как вы отметили в своем комментарии, при запуске пользовательских экземпляров systemd
директива User
должна отсутствовать