Почему не работает созданная служба systemd? Здравствуйте.
Появиласть необходимость запускать программу при загрузке системы и перезапускать в случае её закрытия или краха. Debian 8.1 располагает для этого инстументом systemd.
Был создан юнит с именем dts.service[Unit]
Description = DTS deamon
[Service]
Type = forking
ExecStart = /home/dts/bin/dts-service.sh
Restart = always
StartLimitInterval = 60
StartLimitBurst = 10
[Install]
WantedBy = graphical.target
Который запускает следующий скрипт /home/dts/bin/dts-service.sh cd /home/dts/dts_sdk2/bin
export LD_LIBRARY_PATH=./
./khconsole -c "../dtssrv_pid_flow_las.cfg" # &> /dev/null
При выполнении этот скрипт запускает программу khconsole которая должна все время работать если она закрылась или повисла то systemd должен перезапустить её.
Проблема в следующем:
Отдельно, скрипт отрабатывает корректно. При попытке запуска через systemd получаю следующий результат
Job for dts.service failed. See 'systemctl status dts.service' and 'journalctl -xn' for details.
Результат systemctl status dts.service
dts.service - DTS deamon
Loaded: loaded (/etc/systemd/system/dts.service; enabled)
Active: failed (Result: start-limit) since Пт 2015-09-04 18:27:38 OMST; 28s ago
Process: 1058 ExecStart=/home/dts/bin/dts-service.sh (code=exited, status=203/EXEC)
сен 04 18:27:37 dts systemd[1]: Failed to start DTS deamon.
сен 04 18:27:37 dts systemd[1]: Unit dts.service entered failed state.
сен 04 18:27:38 dts systemd[1]: dts.service start request repeated too quickly, refusing to start.
сен 04 18:27:38 dts systemd[1]: Failed to start DTS deamon.
сен 04 18:27:38 dts systemd[1]: Unit dts.service entered failed state.
Результат journalctl -xn
-- Logs begin at Пт 2015-09-04 18:12:17 OMST, end at Пт 2015-09-04 18:27:38 OMST. --
сен 04 18:27:37 dts systemd[1]: dts.service: control process exited, code=exited status=203
сен 04 18:27:37 dts systemd[1]: Failed to start DTS deamon.
-- Subject: Ошибка юнита dts.service
-- Defined-By: systemd
-- Support: lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Произошел сбой юнита dts.service.
--
-- Результат: failed.
сен 04 18:27:37 dts systemd[1]: Unit dts.service entered failed state.
сен 04 18:27:37 dts systemd[1058]: Failed at step EXEC spawning /home/dts/bin/dts-service.sh: Exec format error
-- Subject: Не удалось запустить процесс /home/dts/bin/dts-service.sh
-- Defined-By: systemd
-- Support: lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Сбой: не удалось запустить процесс /home/dts/bin/dts-service.sh.
--
-- Код ошибки: 8.
сен 04 18:27:37 dts systemd[1]: dts.service: control process exited, code=exited status=203
сен 04 18:27:37 dts systemd[1]: Failed to start DTS deamon.
-- Subject: Ошибка юнита dts.service
-- Defined-By: systemd
-- Support: lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Произошел сбой юнита dts.service.
--
-- Результат: failed.
сен 04 18:27:37 dts systemd[1]: Unit dts.service entered failed state.
сен 04 18:27:38 dts systemd[1]: dts.service start request repeated too quickly, refusing to start.
сен 04 18:27:38 dts systemd[1]: Failed to start DTS deamon.
-- Subject: Ошибка юнита dts.service
-- Defined-By: systemd
-- Support: lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Произошел сбой юнита dts.service.
--
-- Результат: failed.
сен 04 18:27:38 dts systemd[1]: Unit dts.service entered failed state.
Не понятно почему служба не стартует, хотя скрипт корректный и не должен завершаться?

21 Авг 2019 в 06:54
162 +1
0
Ответы
1

Одна из возможных причин, по которой служба не стартует, может быть связана с исполняемым файлом /home/dts/bin/dts-service.sh. Ошибка "Exec format error" указывает на несовместимость формата исполняемого файла. Проверьте, что скрипт правильно сконфигурирован и имеет правильный шебанг (например, #!/bin/bash).

Также обратите внимание на то, что запуск программ через systemd требует абсолютного пути к исполняемым файлам и каталогам, поэтому убедитесь, что все пути в вашем скрипте и юнит-файле указаны абсолютно.

Также важно убедиться, что служба имеет все необходимые права доступа к файлам и каталогам, которые она пытается использовать при запуске.

Если проблема все еще остается, попробуйте выполнить запуск программы напрямую через systemd, чтобы более точно определить причину ошибки. Для этого создайте временный юнит-файл с минимальными настройками (например, только ExecStart) и попробуйте запустить его.

Надеюсь, эта информация поможет вам решить проблему и запустить свою службу успешно. Если останутся вопросы, не стесняйтесь задавать.

20 Апр в 13:11
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 387 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир