ฉันมีบริการที่รันงานแบ็ตช์บนเครื่องแล็บจำนวนหนึ่ง เครื่องแล็บเป็นเครื่องเดสก์ท็อปและฉันต้องการเรียกใช้บริการเฉพาะในกรณีที่ไม่มีผู้ใช้ที่ล็อกอินอยู่นั่นหมายความว่า:
- เมื่อผู้ใช้เข้าสู่ระบบบริการควรจะหยุด
- เมื่อผู้ใช้คนสุดท้ายล็อกเอาต์ควรเริ่มบริการ
แนวคิดปัจจุบันของฉันคือการใช้ Conflicts=
แต่สิ่งนี้มีปัญหาจำนวนหนึ่ง:
- บริการจะไม่เริ่มขึ้นอีกเมื่อผู้ใช้คนสุดท้ายล็อกเอาต์
- การเริ่มบริการด้วยตนเองจะนำไปสู่การออกจากระบบบังคับของผู้ใช้ทั้งหมด
- ฉันไม่ทราบวิธีการเรียกใช้บริการ instantiate (เช่นฉันต้องการ
Conflicts=user@*.service
)
ฉันจะกำหนดบริการ systemd ดังกล่าวโดยไม่มีปัญหาข้างต้นได้อย่างไร