Я пытаюсь создать собственный скрипт, который должен запускаться автоматически во время загрузки. Пользовательский скрипт работает на скрипте Python, который использует Bluetooth. Когда я запускаю следующую строку:

systemctl start myCustomService.service 

Скрипт работает отлично!

Однако, когда я перезагружаю компьютер, у меня появляется следующая ошибка:

[localhost] # systemctl status myCustomService.service -l

myCustomService.service.service - программа MycustomScript

Загружен: загружен (/etc/systemd/system/myCustomService.service; включен; предустановка поставщика: отключена) Активен: не выполнен (Результат: код выхода) с Чт 2019-02-21 15:03:38 CET; 1мин 39с назад Процесс: 821 ExecStart =/.../mycustomScript.sh (code = exited, status = 1/FAILURE) Основной PID: 821 (code = exited, status = 1/FAILURE)

21 февраля 15:03:38 localhost mycustomScript.sh [821]: во время обработки вышеупомянутого исключения произошло другое исключение: 21 февраля 15:03:38 localhost mycustomScript.sh [821]: трассировка (последний последний вызов):

21 февраля 15:03:38 localhost mycustomScript.sh [821]: файл "main.py", строка 69, в

21 февраля 15:03:38 localhost mycustomScript.sh [821]: profile = [SERIAL_PORT_PROFILE],

21 февраля 15:03:38 localhost mycustomScript.sh [821]: файл "/usr/local/lib/python3.6/site-packages/bluetooth/bluez.py", строка 266, в advertise_service

21 февраля 15:03:38 localhost mycustomScript.sh [821]: поднять ошибку BluetoothError (* e.args)

21 февраля 15:03:38 localhost mycustomScript.sh [821]: bluetooth.btcommon.Ошибка Bluetooth: ошибка не рекламного устройства.

21 февраля 15:03:38 localhost mycustomScript.sh [1]: sample.service: основной процесс завершен, код = завершен, status = 1/FAILURE

21 февраля 15:03:38 localhost mycustomScript.sh [1]: модуль sample.service перешел в состояние сбоя.

21 февраля 15:03:38 localhost mycustomScript.sh [1]: ошибка sample.service.

Мой сервис работает после служб Bluetooth, поэтому я не понимаю, почему у меня есть эта ошибка.

PS: я использую Centos 7

1 ответ1

0

Ваш скрипт Python завершается с ошибкой в строке 266. Systemd не знает, почему это произошло, но выдает фактический вывод программы в сообщениях об ошибках:

File "/usr/local/lib/python3.6/site-packages/bluetooth/bluez.py", line 266, in advertise_service
raise BluetoothError (*e.args)

Feb 21 15:03:38 localhost mycustomScript.sh[821]: bluetooth.btcommon.BluetoothError: error no advertisable device.

Feb 21 15:03:38 localhost mycustomScript.sh[1]: sample.service: main process exited, code=exited, status=1/FAILURE

Грязный обходной путь в таких ситуациях заключается в добавлении

ExecStartPre=bash -c "sleep 30"

или столько секунд, сколько, по вашему мнению, вашей системе нужно для запуска устройств Bluetooth

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .