Điểm:1

lệnh làm việc trong thiết bị đầu cuối không hoạt động nếu được thực thi tự động khi khởi động

lá cờ uy

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.

FelixJN avatar
lá cờ im
Kịch bản có dựa trên một số môi trường không? Ví dụ. hiển thị (nó có khởi động một số GUI không?), kết nối mạng, v.v.? `systemd` hoặc `cron` đã báo cáo gì trong nhật ký khi bị lỗi?
tode09 avatar
lá cờ uy
về cơ bản, tập lệnh thu được video từ camera usb, lưu video đó ở h265, thực hiện chuyển đổi ở định dạng mp4, nén video đó thông qua gstreamer, v.v. Không có GUI và không có màn hình. Điều duy nhất được gọi bên ngoài là chuyển đổi gstreamer thông qua pexpect.
FelixJN avatar
lá cờ im
Và `python3` được cài đặt ở đâu? Đây có thể chỉ là một vấn đề `PATH`? Vui lòng thêm thông báo lỗi cho việc triển khai `CRON` và `systemd` của bạn.
tode09 avatar
lá cờ uy
Tôi xin lỗi nhưng tôi không biết tìm những bản ghi đó ở đâu. Lỗi xuất hiện trong tệp nhật ký hệ thống khi khởi chạy cùng với ứng dụng khởi động là như sau: #2 Đối tượng "/lib/ld-linux-aarch64.so.1", ở 0x7fad741a33, ở Đối tượng số 1 "/usr/local/lib/python3.6/dist-packages/numpy/core/../../numpy.libs/libopenblasp-r0-32ff4d91.3.13.so", tại 0x7fa14da72b, trong gotoblas_init #0 Đối tượng "/usr/local/lib/python3.6/dist-packages/numpy/core/../../numpy.libs/libopenblasp-r0-32ff4d91.3.13.so", tại 0x7fa1657f54, trong gotoblas_dynamic_init Hướng dẫn bất hợp pháp (opcode bất hợp pháp [0x7fa1657f54]) hướng dẫn bất hợp pháp
FelixJN avatar
lá cờ im
Vui lòng không thêm phần này dưới dạng nhận xét - [chỉnh sửa](https://askubuntu.com/posts/1387746/edit) câu hỏi của bạn và thêm thông tin (với định dạng mã phù hợp).Thông báo `CRON` có thể được tìm thấy trong `syslog` (`grep CRON /var/log/syslog`), thông tin `systemd` qua `journalctl -xeu ` (thêm `--user` nếu đó là dịch vụ người dùng).
tode09 avatar
lá cờ uy
ok, tôi sẽ làm điều đó trong vài phút. Tôi phát hiện ra rằng vấn đề tương tự cũng xuất hiện nếu mã được khởi chạy bởi thiết bị đầu cuối với sudo. Tôi không biết nếu nó giúp
tode09 avatar
lá cờ uy
Tôi đã chỉnh sửa câu hỏi, nhưng vẫn không biết chuyện gì đang xảy ra
waltinator avatar
lá cờ it
Đó là một câu hỏi về "bối cảnh thực thi". Việc thực thi tập lệnh trên thiết bị đầu cuối của bạn chạy khi bạn (` echo "$USER"`) có lợi cho các tệp khởi động của bạn, `PATH` và các biến môi trường khác cho Python. Quá trình khởi động hệ thống chạy dưới dạng `root`, không sử dụng các tệp khởi động của bạn, có `PATH` riêng và không có biến môi trường nào của bạn. Chạy `echo "=== id ===";id;echo "=== set ==="; set;echo "=== env ==="; env | sort;echo "=== bí danh ==="; bí danh` trong mỗi môi trường của bạn.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.