Tôi cần thực thi chương trình python khi khởi động Ubuntu.
Tập lệnh hoạt động hoặc chạy từ mã phòng thu trực quan hoặc từ thiết bị đầu cuối bằng lệnh:
bash -c "python3 /home/complete_path/script.py"
Tuy nhiên, nếu tôi đặt cùng một mã bằng cách sử dụng "ứng dụng khởi động", mã sẽ chạy nhưng nó sẽ báo lỗi.
Để hiểu chuyện gì đang xảy ra, tôi đã thử nhiều phương pháp khác để chạy tệp, chẳng hạn như sửa đổi dịch vụ sử dụng local.rc hoặc crontab nhưng kết quả luôn giống nhau.
Tôi cũng đã cố gắng tự động khởi chạy thiết bị đầu cuối và thực hiện lệnh khi khởi động thiết bị đầu cuối nhưng kết quả không thay đổi.
Có những loại khác biệt nào trong một lệnh chạy khi khởi động hoặc tự động bởi một thiết bị đầu cuối so với
chèn chúng theo cách thủ công? Tôi không thể hiểu chuyện gì đang xảy ra.
Hệ thống này là một Jetson nano đã cài đặt Ubuntu 18.04.
CHỈNH SỬA 1
chạy nó như một dịch vụ, có vẻ như nó không thể nhập mô-đun python
-- Tự động khởi động lại thiết bị mything.service đã được lên lịch, do đó
-- cài đặt Restart= được định cấu hình cho thiết bị.
gen 18 15:56:33 aisports-desktop systemd[1]: Ngừng huyền thoại: làm việc của riêng tôi.
-- Chủ đề: Đơn vị mything.service đã ngừng hoạt động
-- Xác định bởi: systemd
-- Hỗ trợ: http://www.ubuntu.com/support
--
-- Đơn vị mything.service đã tắt xong.
gen 18 15:56:33 aisports-desktop systemd[1]: Bắt đầu lầm tưởng: làm việc của riêng tôi.
-- Chủ đề: Đơn vị mything.service đã khởi động xong
-- Xác định bởi: systemd
-- Hỗ trợ: http://www.ubuntu.com/support
--
-- Đơn vị mything.service đã khởi động xong.
--
-- Kết quả khởi nghiệp là KẾT QUẢ.
gen 18 15:56:33 aisports-desktop mything.sh[7800]: Traceback (lần gọi gần đây nhất):
gen 18 15:56:33 aisports-desktop legending.sh[7800]: Tệp "/home/aisports/Desktop/AISports/RGB_control_camera.py", dòng 11, trong <module>
gen 18 15:56:33 aisports-desktop legending.sh[7800]: nhập deepai dưới dạng dai
gen 18 15:56:33 aisports-desktop mything.sh[7800]: ModuleNotFoundError: Không có mô-đun nào có tên 'depthai'
gen 18 15:56:33 aisports-desktop systemd[1]: mything.service: Quá trình chính đã thoát, mã=đã thoát, trạng thái=1/THẤT BẠI
gen 18 15:56:33 aisports-desktop systemd[1]: mything.service: Không thành công với kết quả 'mã thoát'.
trong khi tôi vẫn không thể tìm thấy nhật ký của crontab, vì lệnh
grep CRON /var/log/syslog
đêm nó trở lại đây
Tệp nhị phân /var/log/syslog khớp
CHỈNH SỬA 2
Tôi đã giải quyết vấn đề về mô-đun bị thiếu khi thêm đường dẫn của mô-đun đó vào đầu tập lệnh python thông qua
nhập khẩu hệ thống
sys.path.append('path_to_module')
bây giờ sự cố xảy ra giống như trong trường hợp ứng dụng khởi động:
gen 18 18:08:31 aisports-desktop systemd[1]: Ngừng huyền thoại: làm việc của riêng tôi.
-- Chủ đề: Đơn vị mything.service đã ngừng hoạt động
-- Xác định bởi: systemd
-- Hỗ trợ: http://www.ubuntu.com/support
--
-- Đơn vị mything.service đã tắt xong.
gen 18 18:08:31 aisports-desktop systemd[1]: Bắt đầu lầm tưởng: làm việc của riêng tôi.
-- Chủ đề: Đơn vị mything.service đã khởi động xong
-- Xác định bởi: systemd
-- Hỗ trợ: http://www.ubuntu.com/support
--
-- Đơn vị mything.service đã khởi động xong.
--
-- Kết quả khởi nghiệp là KẾT QUẢ.
gen 18 18:08:32 aisports-desktop legending.sh[7763]: [2022-01-18 18:08:32.050] [cảnh báo] VideoEncoder setDefaultProfilePreset: chuyển 'chiều rộng'/ 'chiều cao' không được dùng nữa. Kích thước được tự động xác định từ đầu
gen 18 18:08:34 aisports-desktop legending.sh[7763]: Dấu vết ngăn xếp (cuộc gọi gần đây nhất):
gen 18 18:08:34 aisports-desktop legending.sh[7763]: #2 Đối tượng "/lib/ld-linux-aarch64.so.1", tại 0x7fb4f57a33, trong
gen 18 18:08:34 aisports-desktop legending.sh[7763]: #1 Đối tượng "/usr/local/lib/python3.6/dist-packages/numpy/core/../../numpy.libs/ libopenblasp-r0-32ff4d91.3.13.so", tại 0x7fa055772b, trong gotoblas_init
gen 18 18:08:34 aisports-desktop legending.sh[7763]: #0 Đối tượng "/usr/local/lib/python3.6/dist-packages/numpy/core/../../numpy.libs/ libopenblasp-r0-32ff4d91.3.13.so", tại 0x7fa06d4f54, trong gotoblas_dynamic_
gen 18 18:08:34 aisports-desktop legending.sh[7763]: Hướng dẫn bất hợp pháp (Mã lệnh bất hợp pháp [0x7fa06d4f54])
gen 18 18:08:35 aisports-desktop legending.sh[7763]: /usr/local/bin/mything.sh: dòng 2: 7779 Lệnh bất hợp pháp (đã bỏ lõi) python3 /home/aisports/Desktop/AISports/RGB_control_camera. py
gen 18 18:08:35 aisports-desktop systemd[1]: mything.service: Quá trình chính đã thoát, mã=đã thoát, trạng thái=132/n/a
gen 18 18:08:35 aisports-desktop systemd[1]: mything.service: Không thành công với kết quả 'mã thoát'.
CHỈNH SỬA 3 (cuối cùng)
Cuối cùng tôi đã giải quyết được vấn đề.
trong tệp .bashrc tôi đã thêm xuất OPENBLAS_CORETYPE=ARMV8
do loại bộ xử lý. Tôi nghĩ rằng điều đó cũng đủ cho các lệnh khởi động, thay vào đó thì không. Thêm dòng đó vào tập lệnh khởi động, trước khi gọi tập lệnh python đã giải quyết được sự cố.
Cảm ơn bạn @FelixJN đã hỗ trợ về việc có các tệp nhật ký, điều đó đã giúp tôi rất nhiều.