Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Запуск скрипта на python при загрузке  (Прочитано 7440 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн vtimofeev

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Запуск скрипта на python при загрузке
« Ответ #15 : 03 Июля 2019, 20:50:05 »
Итог:
Нужно - запускать как службу скрипт на Питоне
Решение: systemd
создан скрипт
Код: (html5) [Выделить]
[Unit]
Description=Vididet
After=network.target

[Service]
ExecStart=/home/me/code/start_detector.sh
User=imt
Restart=always
TimeoutSec=10

[Install]
WantedBy=multi-user.target

который ссылается на скрипт в котором правильно подгружаются переменные для openVINO

Код: (bash) [Выделить]
#!/usr/bin/env bash
#export DISPLAY=:0
source /opt/intel/openvino/bin/setupvars.sh
echo "start detecting"
echo ""
/usr/bin/python3.5 /home/me/code/detector.py -i /home/me/code/d3.ini -l /home/me/code/library.ini -d 0

все работает
не решенные пока еще вопросы
- зачем export DISPLAY=:0 потому что вроде работает и без него
- так как не понимаю (или нельзя) как послать ctrl-C в работающий скрипт да и вообще как его (скрипт) "поймать" то я не прописал ExecStop но это потом
- при запуске на другом компе оно написало про какой-то лимит запуска но это еще впереди))) на основном компе норм
- WantedBy=multi-user.target и это тоже не очень осмысленное, камлание
« Последнее редактирование: 03 Июля 2019, 21:08:20 от Azure »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Запуск скрипта на python при загрузке
« Ответ #16 : 03 Июля 2019, 20:53:50 »
- так как не понимаю (или нельзя) как послать ctrl-C в работающий скрипт да и вообще как его (скрипт) "поймать" то я не прописал ExecStop но это потом
Никак не надо ничего посылать. systemd и так пошлёт скрипту SIGTERM, когда придёт пора закругляться.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн vtimofeev

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Запуск скрипта на python при загрузке
« Ответ #17 : 03 Июля 2019, 21:10:31 »
    - так как не понимаю (или нельзя) как послать ctrl-C в работающий скрипт да и вообще как его (скрипт) "поймать" то я не прописал ExecStop но это потом

Никак не надо ничего посылать. systemd и так пошлёт скрипту SIGTERM, когда придёт пора закругляться.

Это значит что если я нормально опишу обработчик ctrl-C или какого другого события то я буду не убивать поток а его аккуратно завершать?

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: Запуск скрипта на python при загрузке
« Ответ #18 : 04 Июля 2019, 01:45:08 »
У тебя скрипт выполняет интерпритатор python, он уже имеет обработчик SIGTERM как и другие.

Оффлайн vtimofeev

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Запуск скрипта на python при загрузке
« Ответ #19 : 06 Июля 2019, 00:06:36 »
export DISPLAY=:0
Для уточнения - а это что значит? надо ли это?
и как привильно выбрать After и WantedBy если надо чтобы все работало после запуска четевых интерфейсов и т д но без логора
PS обещаю обновить итоговый рецепт

Оффлайн valrust

  • Активист
  • *
  • Сообщений: 364
    • Просмотр профиля
Re: Запуск скрипта на python при загрузке
« Ответ #20 : 06 Июля 2019, 00:12:29 »
export DISPLAY=:0

DISPLAY — это переменная окружения которую используют программы с графическим интерфейсом, что бы знать как подключиться к X серверу. У вас скрипт работает в текстовой консоли и эта переменная ему не нужна.

 

Страница сгенерирована за 0.049 секунд. Запросов: 25.