Мне нужно выполнить программу Python при запуске Ubuntu.
Скрипт работает либо из кода Visual Studio, либо из терминала командой:
bash -c "python3 /home/complete_path/script.py"
Тем не менее, если я ставлю тот же код с помощью «автозапуска приложений», код запускается, но выдает ошибку.
Чтобы понять, что происходит, я испробовал множество других способов запуска файла, таких как изменение службы использования local.rc или crontab, но результат всегда один и тот же.
Я также попытался автоматически запустить терминал и выполнить команду при запуске терминала, но результат не изменился.
Какие различия есть в команде, запускаемой при запуске или автоматически терминалом по сравнению с
вставлять их вручную? Я не могу понять, что происходит.
Система представляет собой Jetson nano с установленной Ubuntu 18.04.
РЕДАКТИРОВАТЬ 1
запустив его как службу, кажется, что он не может импортировать модуль python
-- Запланирован автоматический перезапуск объекта mything.service, в результате
-- настроенный параметр Restart= для устройства.
gen 18 15:56:33 aisports-desktop systemd[1]: хватит мифов: занимайся своими делами.
-- Тема: Модуль mything.service завершил работу.
-- Определено: systemd
-- Поддержка: http://www.ubuntu.com/support
--
-- Модуль mything.service завершил работу.
gen 18 15:56:33 aisports-desktop systemd[1]: Начал миф: занимайся своими делами.
-- Тема: Запуск модуля mything.service завершен.
-- Определено: systemd
-- Поддержка: http://www.ubuntu.com/support
--
-- Модуль mything.service завершил запуск.
--
-- Результатом запуска является RESULT.
gen 18 15:56:33 aisports-desktop
gen 18 15:56:33 aisports-desktop мифинг.ш[7800]: файл «/home/aisports/Desktop/AISports/RGB_control_camera.py», строка 11, в <module>
gen 18 15:56:33 aisports-desktop
gen 18 15:56:33 aisports-desktop мифинг.ш [7800]: ModuleNotFoundError: нет модуля с именем 'depthai'
gen 18 15:56:33 aisports-desktop systemd[1]: mything.service: основной процесс завершен, код = завершен, статус = 1/FAILURE
gen 18 15:56:33 aisports-desktop systemd[1]: mything.service: Ошибка с результатом «код выхода».
пока я все еще не могу найти журнал crontab, так как команда
grep CRON /var/log/syslog
возвращает
Двоичный файл /var/log/syslog соответствует
РЕДАКТИРОВАТЬ 2
Я решил проблему с отсутствующим модулем, добавив путь к этому модулю в верхней части скрипта Python через
импорт системы
sys.path.append('path_to_module')
теперь возникает та же проблема, что и в случае запуска приложений:
gen 18 18:08:31 aisports-desktop systemd[1]: хватит мифов: занимайся своими делами.
-- Тема: Модуль mything.service завершил работу.
-- Определено: systemd
-- Поддержка: http://www.ubuntu.com/support
--
-- Модуль mything.service завершил работу.
gen 18 18:08:31 aisports-desktop systemd[1]: Начал миф: занимайся своими делами.
-- Тема: Запуск модуля mything.service завершен.
-- Определено: systemd
-- Поддержка: http://www.ubuntu.com/support
--
-- Модуль mything.service завершил запуск.
--
-- Результатом запуска является RESULT.
gen 18, 18:08:32 aisports-desktop Размер определяется автоматически с первого
gen 18 18:08:34 aisports-desktop мифинг.ш[7763]: трассировка стека (последний вызов последний):
gen 18, 18:08:34, aisports-desktop
gen 18 18:08:34 aisports-desktop libopenblasp-r0-32ff4d91.3.13.so", по адресу 0x7fa055772b, в gotoblas_init
gen 18 18:08:34 aisports-desktop libopenblasp-r0-32ff4d91.3.13.so", по адресу 0x7fa06d4f54, в gotoblas_dynamic_
gen 18 18:08:34 aisports-desktop мифинг.ш[7763]: недопустимая инструкция (недопустимый код операции [0x7fa06d4f54])
gen 18 18:08:35 aisports-desktop пи
gen 18 18:08:35 aisports-desktop systemd[1]: mything.service: основной процесс завершен, код = завершен, статус = 132/н/д
gen 18 18:08:35 aisports-desktop systemd[1]: mything.service: Ошибка с результатом «код выхода».
РЕДАКТИРОВАТЬ 3 (последний)
Я наконец решил проблему.
в файле .bashrc я добавил экспорт OPENBLAS_CORETYPE=ARMV8
из-за типа процессора. Я думал, что этого было достаточно и для команд запуска, но этого не было. Добавление этой строки в сценарий запуска перед вызовом сценария python решило проблему.
Спасибо @FelixJN за поддержку файлов журнала, которые мне очень помогли.