Systemd запускает демон при загрузке, как System V

385
Luke Moll

Я настраиваю приложение Java для запуска при загрузке с использованием jsvc, следуя этому руководству, в котором используется systemv(init.d). Я использую Ubuntu 16.04, которая использует systemd, и мне трудно найти именно то , что мне нужно сделать, чтобы запустить его при загрузке и остановиться при завершении работы .

До сих пор я знаю, что нужно создать службу с Type=forkingкак jsvc_execкоманда, которая запускает / останавливает приложение вилки, когда он побежал.

Что еще мне нужно включить, чтобы он работал аналогично сценарию systemv из учебника?

Спасибо

0

1 ответ на вопрос

1
Alex

Что-то вроде этого:

 [Unit] Description=Description of daemon After=network.target  [Service] #WorkingDirectory=/path/to/program/ #User= #Group= Type=forking  ExecStart=/path/to/program/program start ExecStop=/path/to/program/program stop #PIDFile=/path/to/pid/file.pid #RestartSec=15 #Restart=always  [Install] WantedBy=multi-user.target 
Это именно то, что я искал, спасибо! Один быстрый вопрос, что такое PIDFile и где я могу его найти? Или это не имеет значения, потому что `#` комментирует строку? Luke Moll 7 лет назад 0
# комментируйте строку, раскомментируйте то, что вам нужно Alex 7 лет назад 0
в вики Arch он сказал, что если указано, systemd может отслеживать основной процесс, если я хочу включить это, где я найду файл PID? Luke Moll 7 лет назад 0
`/ var / run / mydaemon.pid` Я думаю, из того, что я прочитал в уроке ... Alex 7 лет назад 1
Не забудьте `sudo systemctl enable daemon.service`, где вы заменяете` daemon.service` именем вашего служебного файла, иначе он не запустится при загрузке :) Alex 7 лет назад 1
`systemctl start daemon` работает нормально, но` systemctl enable daemon` выкладывает множество ошибок из `insserv` о` неполном комментарии LSB`, нуждающихся в записях `Default-Start` и` Default-Stop` (даже если они пустые) , Внизу есть также файл update-rc.d, который говорит, что Default-Start не содержит уровней запуска. Luke Moll 7 лет назад 0
Попробуйте удалить все комментарии Alex 7 лет назад 0
в полях ExecStart и ExecStop у меня был сценарий, который я написал ранее в /etc/init.d/, добавив `# Default-Start: 2 3 4 5` и` # Default-Stop: 0 1 6` в сценарии _that_ работать Luke Moll 7 лет назад 0