Score:0

เรียกใช้ systemctl ในสคริปต์ Python

ธง cn

ฉันกำลังพยายามรับสถานะของบางคน ระบบ บริการใน Python แต่ฉันยังคงได้รับข้อผิดพลาด FileNotFoundError: [Errno 2] ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว: 'systemctl show -p ActiveState --value abc'

ฉันใช้ Ubuntu 20.04 ในฐานะผู้ใช้ ผู้ใช้. เดอะ abc.service ไฟล์อยู่ใน /etc/systemd/ระบบ/, รายละเอียดด้านล่าง:

-rw-rw-r-- 1 รูท 1542 5 ส.ค. 17:31 abc.service

สคริปต์คือ

นำเข้ากระบวนการย่อย
สถานะ = subprocess.check_output ("systemctl แสดง -p ActiveState --value abc")
พิมพ์ (สถานะ)

อย่างไรก็ตาม ถ้าฉันเรียกใช้ไฟล์ systemctl คำสั่งโดยตรง ฉันจะได้รับสถานะ คล่องแคล่ว. ฉันได้ลองกับ ซูโด ในสคริปต์ และฉันได้รับข้อผิดพลาดเดียวกัน

ในบันทึกที่เกี่ยวข้อง ฉันคิดว่าฉันจะต้องเรียกใช้คำสั่งโดยใช้ ซูโด ในที่สุด แต่ฉันใช้คำสั่งเป็นส่วนหนึ่งของ Airflow dag ของฉัน (เช่นไม่ใช่สคริปต์แยกต่างหากที่ฉันสามารถทำได้ sudo python3 myscript.py). มีวิธีการทำเช่นนี้หรือไม่?

ajgringo619 avatar
de flag
ฉันคิดว่าสิ่งนี้จะช่วยได้: https://stackoverflow.com/questions/2449250/any-way-to-assign-terminal-output-to-variable-with-python#2449301
Score:0
ธง cn

ฉันสะเพร่าและไม่ได้รวม เชลล์=จริง ในของฉัน กระบวนการย่อย. เมื่อฉันเพิ่มเข้าไป มันจะทำงานได้สำเร็จ

สถานะ = subprocess.check_output ("systemctl แสดง -p ActiveState --value abc", เชลล์ = True)

โพสต์คำตอบ

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