Почему не работает созданная служба 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. Не понятно почему служба не стартует, хотя скрипт корректный и не должен завершаться?
Одна из возможных причин, по которой служба не стартует, может быть связана с исполняемым файлом /home/dts/bin/dts-service.sh. Ошибка "Exec format error" указывает на несовместимость формата исполняемого файла. Проверьте, что скрипт правильно сконфигурирован и имеет правильный шебанг (например, #!/bin/bash).
Также обратите внимание на то, что запуск программ через systemd требует абсолютного пути к исполняемым файлам и каталогам, поэтому убедитесь, что все пути в вашем скрипте и юнит-файле указаны абсолютно.
Также важно убедиться, что служба имеет все необходимые права доступа к файлам и каталогам, которые она пытается использовать при запуске.
Если проблема все еще остается, попробуйте выполнить запуск программы напрямую через systemd, чтобы более точно определить причину ошибки. Для этого создайте временный юнит-файл с минимальными настройками (например, только ExecStart) и попробуйте запустить его.
Надеюсь, эта информация поможет вам решить проблему и запустить свою службу успешно. Если останутся вопросы, не стесняйтесь задавать.
Одна из возможных причин, по которой служба не стартует, может быть связана с исполняемым файлом /home/dts/bin/dts-service.sh. Ошибка "Exec format error" указывает на несовместимость формата исполняемого файла. Проверьте, что скрипт правильно сконфигурирован и имеет правильный шебанг (например, #!/bin/bash).
Также обратите внимание на то, что запуск программ через systemd требует абсолютного пути к исполняемым файлам и каталогам, поэтому убедитесь, что все пути в вашем скрипте и юнит-файле указаны абсолютно.
Также важно убедиться, что служба имеет все необходимые права доступа к файлам и каталогам, которые она пытается использовать при запуске.
Если проблема все еще остается, попробуйте выполнить запуск программы напрямую через systemd, чтобы более точно определить причину ошибки. Для этого создайте временный юнит-файл с минимальными настройками (например, только ExecStart) и попробуйте запустить его.
Надеюсь, эта информация поможет вам решить проблему и запустить свою службу успешно. Если останутся вопросы, не стесняйтесь задавать.