'คนตัดไม้' ส่งข้อมูลไปยังซ็อกเก็ต Unix /dev/log
. (มันเป็นซ็อกเก็ตแม้จะอยู่ใน /dev.)
บน Linux ดิสทริบิวชันส่วนใหญ่ ซ็อกเก็ตนี้คือ ไม่ เป็นเจ้าของโดย syslog daemon แบบดั้งเดิมอีกต่อไป â ปลายอีกด้านหนึ่งไม่ได้ไปที่ rsyslog โดยตรง แต่ซ็อกเก็ต /dev/log เป็นของ systemd-วารสาร บริการซึ่งยังคงทำงานและรับข้อความ
# ฟิวเซอร์ -v /dev/log
คำสั่งการเข้าถึง PID ของผู้ใช้
/run/systemd/journal/dev-log: รูท 1 F.... systemd
รูท 304 F.... systemd-journal
(โปรดทราบว่า init ยังเก็บซ็อกเก็ต â หาก Journald หยุดทำงาน แต่มีกิจกรรมบางอย่างบนซ็อกเก็ต init จะเริ่มบริการอีกครั้งโดยอัตโนมัติ เช่นเดียวกับ 'inetd' สำหรับบริการ TCP ในอดีต)
Systemd-journald เก็บบันทึก /var/log/journal ซึ่งคุณสามารถอ่านได้ สมุดรายวันctl -f
แทนที่จะเป็น 'tail -f' ตามปกติ (อยู่ในรูปแบบไบนารีที่จัดทำดัชนี) โดยปกติข้อความผ่าน /dev/log จะยังคงถูกเขียนต่อไปแม้ว่า rsyslogd หยุดทำงาน
คนตัดไม้ $ สวัสดี
$journalsctl -n 1
12 ก.ค. 18:12:26 น. ember root[951422]: สวัสดี
ในระบบดังกล่าว รับเฉพาะแพ็กเกจ rsyslogd และ syslog-ng ถ่ายทอด ข้อความจาก systemd-journal ไม่ใช่โดยตรงจากโปรแกรมพวกเขาทำงานโดยการฟังที่ซ็อกเก็ตอื่น (ภายใน /run/systemd) ซึ่ง Journald ส่งต่อข้อความทั้งหมด â หรือโดยการอ่านไฟล์บันทึกไบนารีโดยตรงจาก /var/log/journal
(โดยปกติแล้ว การเข้าถึงไฟล์ .journal โดยตรงเป็นที่ต้องการ เนื่องจากอนุญาตให้ rsyslogd รวบรวมฟิลด์เพิ่มเติมที่รวมอยู่ในโปรแกรม ซึ่งมิฉะนั้นจะสูญหายไปเมื่อใช้การส่งต่อข้อความที่ใช้ซ็อกเก็ต)
หากคุณชี้ 'คนตัดไม้' ไปที่ซ็อกเก็ต Unix ซึ่งไม่ยอมรับข้อความ มันจะแสดงข้อความแสดงข้อผิดพลาดอย่างที่ควรจะเป็น:
$ python -c "จากการนำเข้าซ็อกเก็ต *; socket(AF_UNIX, SOCK_DGRAM).bind('/tmp/log')"
$logger -u /tmp/log สวัสดี
คนตัดไม้: ซ็อกเก็ต /tmp/log: การเชื่อมต่อถูกปฏิเสธ