Score:1

คำสั่งการทำงานในเทอร์มินัลไม่ทำงานหากดำเนินการโดยอัตโนมัติเมื่อเริ่มต้น

ธง uy

ฉันต้องรันโปรแกรมไพธอนเมื่อเริ่มต้น Ubuntu สคริปต์ทำงานได้ทั้งจากโค้ด Visual Studio หรือจากเทอร์มินัลด้วยคำสั่ง:

ทุบตี -c "python3 /home/complete_path/script.py"

อย่างไรก็ตาม หากฉันใส่รหัสเดียวกันโดยใช้ "แอปพลิเคชันเริ่มต้น" รหัสจะถูกเรียกใช้แต่กลับแสดงข้อผิดพลาด เพื่อให้เข้าใจว่าเกิดอะไรขึ้น ฉันลองใช้วิธีการอื่นๆ หลายวิธีเพื่อเรียกใช้ไฟล์ เช่น การแก้ไข local.rc ใช้บริการหรือ crontab แต่ผลลัพธ์ก็เหมือนเดิมเสมอ ฉันพยายามเปิดใช้งานเทอร์มินัลโดยอัตโนมัติและดำเนินการคำสั่งเมื่อเริ่มต้นเทอร์มินัล แต่ผลลัพธ์ไม่เปลี่ยนแปลง ความแตกต่างประเภทใดที่มีในคำสั่งที่รันเมื่อเริ่มต้นหรือโดยอัตโนมัติโดยเทอร์มินัลเทียบกับ
แทรกด้วยตนเอง? ฉันไม่สามารถเข้าใจได้ว่าเกิดอะไรขึ้น

ระบบนี้เป็น Jetson nano ที่ติดตั้ง Ubuntu 18.04

แก้ไข 1 เรียกใช้เป็นบริการดูเหมือนว่าไม่สามารถนำเข้าโมดูลหลามได้

-- การรีสตาร์ทยูนิต mything.service โดยอัตโนมัติได้รับการกำหนดเวลาแล้ว ซึ่งเป็นผลลัพธ์สำหรับ
-- การกำหนดค่า Restart= การตั้งค่าสำหรับหน่วย
gen 18 15:56:33 aisports-desktop systemd[1]: หยุดเรื่องโกหก: ทำเรื่องของตัวเอง
-- เรื่อง: Unit mything.service ปิดตัวลงแล้ว
-- กำหนดโดย: systemd
-- การสนับสนุน: http://www.ubuntu.com/support
-- 
-- Unit mything.service ปิดตัวลงเรียบร้อยแล้ว
gen 18 15:56:33 aisports-desktop systemd[1]: เริ่มเรื่องที่เป็นตำนาน: ทำเรื่องของตัวเอง
-- เรื่อง: Unit mything.service เริ่มทำงานเสร็จแล้ว
-- กำหนดโดย: systemd
-- การสนับสนุน: http://www.ubuntu.com/support
-- 
-- Unit mything.service เริ่มทำงานเสร็จแล้ว
-- 
-- ผลลัพธ์การเริ่มต้นคือ RESULT
gen 18 15:56:33 aissports-desktop mything.sh[7800]: Traceback (การโทรครั้งล่าสุดล่าสุด):
เจนเนอเรชั่น 18 15:56:33 aisports-desktop mything.sh[7800]: ไฟล์ "/home/aisports/Desktop/AISports/RGB_control_camera.py", บรรทัด 11, ใน <โมดูล>
gen 18 15:56:33 aisports-desktop mything.sh[7800]: นำเข้าความลึกเป็น dai
เจนเนอเรชั่น 18 15:56:33 aisports-desktop mything.sh[7800]: ModuleNotFoundError: ไม่มีโมดูลชื่อ 'ความลึกไท'
เจน 18 15:56:33 aisports-desktop systemd[1]: mything.service: ออกจากกระบวนการหลักแล้ว, รหัส=ออกแล้ว, สถานะ=1/ล้มเหลว
เจน 18 15:56:33 aisports-desktop systemd[1]: mything.service: ล้มเหลวด้วยผลลัพธ์ 'exit-code'

ในขณะที่ฉันยังไม่พบบันทึกของ crontab เนื่องจากคำสั่ง

grep CRON /var/log/syslog

ให้กลับ

ไฟล์ไบนารี /var/log/syslog ตรงกัน

แก้ไข 2 ฉันแก้ไขปัญหาโมดูลที่ขาดหายไปโดยเพิ่มเส้นทางของโมดูลนั้นที่ด้านบนสุดของสคริปต์ไพธอน

นำเข้าระบบ
sys.path.append('path_to_module')

ตอนนี้ปัญหาที่เกิดขึ้นเหมือนกับในกรณีของแอปพลิเคชันเริ่มต้น:

gen 18 18:08:31 aisports-desktop systemd[1]: หยุดเรื่องโกหก: ทำเรื่องของตัวเอง
-- เรื่อง: Unit mything.service ปิดตัวลงแล้ว
-- กำหนดโดย: systemd
-- การสนับสนุน: http://www.ubuntu.com/support
-- 
-- Unit mything.service ปิดตัวลงเรียบร้อยแล้ว
gen 18 18:08:31 aisports-desktop systemd[1]: เริ่มเป็นตำนาน: ทำสิ่งที่เป็นของฉันเอง
-- เรื่อง: Unit mything.service เริ่มทำงานเสร็จแล้ว
-- กำหนดโดย: systemd
-- การสนับสนุน: http://www.ubuntu.com/support
-- 
-- Unit mything.service เริ่มทำงานเสร็จแล้ว
-- 
-- ผลลัพธ์การเริ่มต้นคือ RESULT
เจน 18 18:08:32 aisports-desktop mything.sh[7763]: [2022-01-18 18:08:32.050] [คำเตือน] VideoEncoder setDefaultProfilePreset: การส่งผ่าน 'ความกว้าง'/ 'ความสูง' เลิกใช้แล้ว ขนาดจะถูกกำหนดโดยอัตโนมัติตั้งแต่แรก
gen 18 18:08:34 aisports-desktop mything.sh[7763]: Stack trace (การโทรครั้งล่าสุดล่าสุด):
เจน 18 18:08:34 aisports-desktop mything.sh[7763]: #2 Object "/lib/ld-linux-aarch64.so.1", ที่ 0x7fb4f57a33, ใน
เจน 18 18:08:34 aisports-desktop mything.sh[7763]: #1 Object "/usr/local/lib/python3.6/dist-packages/numpy/core/../../numpy.libs/ libopenblasp-r0-32ff4d91.3.13.so", ที่ 0x7fa055772b, ใน gotoblas_init
เจน 18 18:08:34 aisports-desktop mything.sh[7763]: #0 Object "/usr/local/lib/python3.6/dist-packages/numpy/core/../../numpy.libs/ libopenblasp-r0-32ff4d91.3.13.so", ที่ 0x7fa06d4f54, ใน gotoblas_dynamic_
เจน 18 18:08:34 aisports-desktop mything.sh[7763]: คำแนะนำที่ผิดกฎหมาย (รหัส opcode ที่ผิดกฎหมาย [0x7fa06d4f54])
เจน 18 18:08:35 aisports-desktop mything.sh[7763]: /usr/local/bin/mything.sh: บรรทัดที่ 2: 7779 คำสั่งที่ผิดกฎหมาย (คอร์ทิ้ง) python3 /home/aisports/Desktop/AISports/RGB_control_camera พาย
เจน 18 18:08:35 aisports-desktop systemd[1]: mything.service: ออกจากกระบวนการหลักแล้ว, รหัส=ออกแล้ว, สถานะ=132/n/a
เจน 18 18:08:35 aisports-desktop systemd[1]: mything.service: ล้มเหลวด้วยผลลัพธ์ 'exit-code'

แก้ไข 3 (ล่าสุด) ในที่สุดฉันก็แก้ปัญหาได้ ในไฟล์ .bashrc ที่ฉันเพิ่มเข้าไป ส่งออก OPENBLAS_CORETYPE=ARMV8 เนื่องจากประเภทของโปรเซสเซอร์ ฉันคิดว่านั่นก็เพียงพอแล้วสำหรับคำสั่งเริ่มต้น แต่ก็ไม่เป็นเช่นนั้น การเพิ่มบรรทัดนั้นในสคริปต์เริ่มต้นก่อนที่จะเรียกสคริปต์ไพ ธ อนช่วยแก้ปัญหาได้ ขอบคุณ @FelixJN สำหรับการสนับสนุนการมีไฟล์บันทึก ซึ่งช่วยฉันได้มาก

FelixJN avatar
im flag
สคริปต์ขึ้นอยู่กับสภาพแวดล้อมบางอย่างหรือไม่? เช่น. แสดง (มันเริ่ม GUI บางส่วนหรือไม่) การเชื่อมต่อเครือข่าย ฯลฯ ? `systemd` หรือ `cron` รายงานอะไรในบันทึกเมื่อล้มเหลว
tode09 avatar
uy flag
สคริปต์โดยทั่วไปรับวิดีโอจากกล้อง usb บันทึกใน h265 ทำการแปลงเป็น mp4 บีบอัดผ่าน gstreamer ando เป็นต้น ไม่มี GUI และไม่มีจอแสดงผล สิ่งเดียวที่เรียกว่าภายนอกคือการแปลง gstreamer ผ่าน pexpect
FelixJN avatar
im flag
และติดตั้ง `python3` ที่ไหน นี่อาจเป็นปัญหา 'PATH' หรือไม่ โปรดเพิ่มข้อความแสดงข้อผิดพลาดสำหรับการใช้งาน "CRON" และ "systemd"
tode09 avatar
uy flag
ฉันขอโทษ แต่ฉันไม่รู้ว่าจะหาบันทึกเหล่านั้นได้ที่ไหน ข้อผิดพลาดที่ปรากฏในไฟล์ syslog เมื่อเปิดใช้แอปพลิเคชันเริ่มต้นมีดังต่อไปนี้: #2 วัตถุ "/lib/ld-linux-aarch64.so.1" ที่ 0x7fad741a33 ใน # 1 วัตถุ "/usr/local/lib/python3.6/dist-packages/numpy/core/../../numpy.libs/libopenblasp-r0-32ff4d91.3.13.so" ที่ 0x7fa14da72b ใน gotoblas_init #0 วัตถุ "/usr/local/lib/python3.6/dist-packages/numpy/core/../../numpy.libs/libopenblasp-r0-32ff4d91.3.13.so" ที่ 0x7fa1657f54 ใน gotoblas_dynamic_init คำแนะนำที่ผิดกฎหมาย (opcode ผิดกฎหมาย [0x7fa1657f54]) คำสั่งที่ผิดกฎหมาย
FelixJN avatar
im flag
โปรดอย่าเพิ่มสิ่งนี้เป็นความคิดเห็น - [แก้ไข](https://askubuntu.com/posts/1387746/edit) คำถามของคุณและเพิ่มข้อมูล (ด้วยรูปแบบรหัสที่เหมาะสม)ข้อความ `CRON` สามารถพบได้ใน `syslog` (`grep CRON /var/log/syslog`), ข้อมูล `systemd` ผ่าน `journalctl -xeu ` (เพิ่ม `--user` หากเป็นบริการผู้ใช้)
tode09 avatar
uy flag
ตกลง ฉันจะทำมันในไม่กี่นาที ฉันพบว่าปัญหาเดียวกันนี้ปรากฏขึ้นเช่นกันหากเทอร์มินัลเปิดใช้รหัสด้วย sudo ฉันไม่รู้ว่ามันช่วยได้ไหม
tode09 avatar
uy flag
ฉันแก้ไขคำถาม แต่ก็ยังไม่รู้ว่าเกิดอะไรขึ้น
waltinator avatar
it flag
เป็นคำถามของ "บริบทการดำเนินการ" การทำงานของเทอร์มินัลของสคริปต์จะทำงานเมื่อคุณ (` echo "$USER"`) ได้รับประโยชน์จากไฟล์เริ่มต้น `PATH` และตัวแปรสภาพแวดล้อมอื่นๆ สำหรับ Python กระบวนการเริ่มต้นระบบทำงานเป็น `root` ไม่ใช้ไฟล์เริ่มต้นของคุณ มี `PATH` ของตัวเอง และไม่มีตัวแปรสภาพแวดล้อมของคุณ เรียกใช้ `echo "=== id ===";id;echo "=== set ===";set;echo "=== env ===";env | sort;echo "=== alias ===";alias` ในแต่ละสภาพแวดล้อมของคุณ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา