ฉันกำลังพยายามเรียนรู้การใช้งานพื้นฐาน systemd และฉันประสบปัญหาสับสนกับหน่วยบริการผู้ใช้
เมื่อเรียกใช้บริการธรรมดาที่มีsystemctl เริ่มต้นบริการบางอย่างฉันสามารถค้นหาบันทึกเต็มรูปแบบสำหรับบริการนี้ (รวมถึงสิ่งที่พิมพ์ไปยัง stdout / stderr ตามที่ฉันเข้าใจ) โดยใช้sudo journalctl - รวมเอาบางบริการ
พิจารณาตัวอย่าง servicefile chatty.service :
[Service]
ExecStart=/usr/bin/echo "test from chatty.service"
เมื่อฉันวางไฟล์เซอร์วิสนี้ใน~ / .config / systemd / user / chatty.serviceและรันด้วยsystemctl --user start chatty.serviceฉันไม่พบเอาต์พุตที่ส่งไปยัง stdout ใน journalctl ไม่ว่าจะเป็นjournalctlธรรมดาหรือกับjournalctl - ของผู้ใช้ ฉันจะได้รับผลลัพธ์ต่อไปนี้ทั้งคู่:
Jan 15 19:16:52 qbd-x230-suse.site systemd[1168]: Starting chatty.service...
Jan 15 19:16:52 qbd-x230-suse.site systemd[1168]: Started chatty.service.
และjournalctl --unit chatty.serviceจะไม่ส่งคืนสิ่งใดเลย (ไม่ว่าจะมีหรือไม่มี - ผู้ใช้ก็ไม่ได้ทำให้แตกต่าง)
ในขณะที่ถ้าฉันย้ายไฟล์เซอร์วิสเดียวกันไปที่/ etc / systemd / systemและรันด้วยsudo systemd start chatty.serviceฉันจะได้ผลลัพธ์ต่อไปนี้เมื่อฉันรันsudo journalctl --unit chatty.service :
Jan 15 19:28:08 qbd-x230-suse.site systemd[1]: Starting chatty.service...
Jan 15 19:28:08 qbd-x230-suse.site systemd[1]: Started chatty.service.
Jan 15 19:28:08 qbd-x230-suse.site echo[27098]: test from chatty.service
ดูเหมือนว่าหน่วยบริการผู้ใช้จะไม่ได้รับการบูรณาการอย่างใดอย่างนี้เป็นสิ่งที่คาดหวังฉันขาดอะไรบางอย่างหรือเป็นข้อผิดพลาดหรือไม่?
ฉันใช้ openSUSE 13.1 x86-64, กับ systemd 208 (ติดตั้งเป็นค่าเริ่มต้น)
journalctl --user --user-unit chatty
เพื่อรับข้อความเริ่มต้น / หยุดเหล่านั้นจาก systemd แต่ไม่ใช่สิ่งที่กระบวนการ echo ประมวลผลอย่างน้อยในกรณีของฉัน คุณสามารถรับข้อความที่สะท้อนด้วยjournalctl --user
หรือใช้ตัวกรองอื่น ๆ