Проблема с автозагрузкой python-скрипта?

Есть скрипт, работающий с COM-портом. Добавил его в автозагрузку путем создания файла с командой запуска в /etc/init.d/ После перезагрузки top видит питоновский процесс, но сам скрипт на взаимодействие с портом никак не реагирует. Стоит запустить скрипт вручную, как все нормально работает. В чем может быть причина?
  • Вопрос задан
  • 3357 просмотров
Пригласить эксперта
Ответы на вопрос 5
4dmonster
@4dmonster
1. а это именно ваш скрипт? Скрипт только в /etc/init.d/? тогда ещё команда требуется update-rc.d имяскрипта defaults 80 чтобы создались симлинки в /etc/rc?.d

2. при ручной проверке вы стартуете скрипт от имени root? если нет — может окружение не настроено, попробуйте sudo -H -u ИмяюзераИзподКоторого работает

3. посмотрите — какие есть ошибки от этого скрипта.
Ответ написан
simplecode
@simplecode
может быть скрипт запускается от разных пользователей?
Ответ написан
Комментировать
ntkt
@ntkt
Потомственный рыцарь клавиатуры и паяльника
И права на файл-устройство порта проверить бы тоже.

А с top'ом еще употребить lsof / fuser /… чтобы посмотреть, открыт ли порт на самом деле.

Ну и вывод из самого скрипта — суровое, проверенное средство.
Ответ написан
Комментировать
@alz
Может в сторону XAUTHORITY смотреть надо?
Ответ написан
Комментировать
alexandris
@alexandris
Вам в лог надо отписывать не только вывод print, но и ошибки.Для этого строка запуска должна быть такая
/usr/bin/python /path/to/script.py >>/tmp/pyscript.log 2>&1

Проблема скорее всего действительно в запуске xrandr. Эта утилита требует запущенных иксов и установленной переменной окружения DISPLAY. Попробуйте запускать как:
DISPLAY=:0.0 xrandr -o left
Хотя возможно, что скрипт запускает xrandr еще до запуска самих иксов.

Как вариант, можно засунуть скрипт в автозагрузку(уже после старта иксов) gdm, менеджера окон или .xinitrc
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы