#linux #service #server #daemon #systemd
#linux #Обслуживание #сервер #демон #systemd
Вопрос:
Я настраиваю новую служебную программу. Я использую systemctl
. но когда я авторизовался, включил, запустил службу, но она не работала с ошибкой «Не удалось запустить ~~~.service.
Я командовал этими командами.
sudo systemctl daemon-reload
sudo systemctl start serverProgram.service
sudo systemctl enable serverProgram.service
sudo systemctl status serverProgram.service
и код ошибки выглядит следующим образом.
serverProgram.service : Service hold-off time over, scheduling restart.
serverProgram.service : Scheduled restart job, restart counter is a 5. Stopped serverProgram.service.
serverProgram.service : Start request repeated too quickly.
serverProgram.service : Failed with result 'exit-code'.
Failed to start serverProgram.service.
Я написал serverProgram.service
с помощью nano.
и код такой.
# serverProgram file
[Service]
WorkingDirectory=/home/Desktop/LSH/Study/C /DaemonProgram
ExecStart=/home/Desktop/LSH/Study/C /DaemonProgram/main
Restart=always
[Install]
WantedBy=multi-user.target
Я хочу автоматически активировать основную программу при перезагрузке
Ответ №1:
Похоже, что программа, которую вы пытаетесь запустить, завершается сбоем, как только вы пытаетесь ее запустить. systemd
пытается перезапустить его (потому что у вас есть Restart=always
), но он сдается, если обнаруживает много перезапусков за очень короткий период.
Если ваша программа работает нормально при запуске вручную, помните, что systemd
она будет пытаться запустить ее в другой роли, чем обычно (другой пользователь, другие настройки среды и т. Д.)
Вы должны иметь возможность видеть выходные данные вашей программы с помощью journalctl
— в этом ответе приведен краткий пример того, как его использовать.