ฉันใช้ Fedora CoreOS โดยเปิดใช้งานตัวอัปเดตอัตโนมัติ ซึ่งเหมาะสำหรับกรณีการใช้งานของฉัน เมื่อเข้าสู่ระบบแบบโต้ตอบ ระบบจะเตือนเกี่ยวกับการปิด/รีสตาร์ทที่ใกล้จะเกิดขึ้นผ่านคอนโซล ด้วยกลไกเดียวกันกับที่อธิบายไว้ในคำตอบ เช่น
ส่งข้อความปิดระบบไปยังไคลเอ็นต์ทั้งหมดจากเซิร์ฟเวอร์
อย่างไรก็ตาม ผู้ใช้ "จริง" ของเซิร์ฟเวอร์นี้ไม่ใช่ผู้ใช้ Linux ที่มีสิทธิ์เข้าถึง SSH แต่เข้าถึงเซิร์ฟเวอร์อย่าง IRC หรือบริการอื่นๆ ฉันต้องการ "จับ" ข้อความเตือนการปิดระบบและส่งต่อไปยังแต่ละบริการ, s.t. พวกเขาสามารถออกอากาศได้
บริการนี้จัดการโดยใช้คอนเทนเนอร์ podman/docker ที่ไม่ได้รับสิทธิพิเศษที่รันผ่าน systemd (พ็อดแมนสร้างระบบ
) หน่วยผู้ใช้
ฉันสามารถ (ab) ใช้ ExecStopPre
การตั้งค่าในหน่วย systemd เป็น เสมอ นอน5ม
ก่อนปิดเครื่อง นี่ไม่ใช่สิ่งที่ฉันต้องการ เนื่องจากฉันต้องการที่จะเริ่มต้นใหม่/หยุดบริการได้ทันที เมื่อทำด้วยตนเองโดยใช้ systemctl --user หยุด/รีสตาร์ท
.
ขณะนี้ฉันเห็นสองเส้นทางที่สามารถเปิดใช้งานสิ่งนี้:
- วิธีการบางอย่างสำหรับหน่วยในการฟังข้อความวอลล์และส่งต่อ
- วิธีการระบุบางอย่าง
--ละเว้น ExecStopPre
บนคอนโซล
หลังสามารถทำได้โดยใช้ systemctl --user แก้ไข --รันไทม์
. อย่างไรก็ตาม วิธีที่สองมีการหยุดทำงานของ (ab) การใช้ ExecStopPre ในขณะที่อาจจำเป็นสำหรับวัตถุประสงค์อื่นอยู่แล้ว
อย่างไรก็ตาม ฉันยินดีสำหรับแนวคิดเกี่ยวกับวิธีบรรลุ (1) หรือทำให้ (2) ทำงานได้ดีขึ้นอีกเล็กน้อย หรือแม้แต่วิธีการแก้ปัญหาที่ต่างกันโดยสิ้นเชิง