systemd รุ่น 230 มีการปรับค่าคอนฟิกเริ่มต้น KillUserProcesses เป็น yes ทำให้ systemd ปิดโปรแกรมทุกตัวทันทีหลังจากผู้ใช้ล็อกเอาต์จากระบบ (รวมถึงการเชื่อมต่อ ssh หลุดไป) ส่งปัญหาต่อโปรแกรมที่เปิดค้างเอาเพื่อป้องกันการเชื่อมต่อหลุดไปอย่าง tmux, screen, และ x2go
keszybz นักพัฒนาของ systemd ระบุว่าทางแก้นั้นทำได้โดยผู้ใช้อาจจะสั่งแก้ scope ของการรันด้วยคำสั่ง systemd-run --scope --user tmux
ทำให้แม้ว่าผู้ใช้หลุดออกจากระบบไป โปรแกรมก็จะรันต่อ แต่หากโปรแกรมเช่น tmux และ screen จะสามารถรันตัวเองโดยเปลี่ยน scope ได้อันโนมัติก็จะดีกว่า และเขาเสนอให้ tmux รองรับการเปลี่ยน scope ด้วยตัวเอง
ข้อเสียของแนวทางนี้คือ tmux จะต้องลากเอาไลบรารี dbus เข้ามาเป็น dependency ด้วย ทาง nicm นักพัฒนาของ dbus ระบุว่าฟังก์ชั่น daemon
ทำงานได้ค่อนข้างตรงกันทุกระบบอยู่แล้วมานานถึงสามสิบปี ทำไม systemd จึงเลือกมาเปลี่ยนพฤติกรรมและให้แอปพลิเคชั่นรองรับความเปลี่ยนแปลงนี้ไว้เอง
ทางฝั่ง systemd ระบุว่าการปิดโปรแกรมทั้งหมดหลังผู้ใช้หลุดออกจากระบบเป็นค่าเริ่มต้นหลังจากมีปัญหาโปรแกรม GUI รันค้างไว้แม้ผู้ใช้จะล็อกเอาต์ไปแล้วก็ตามจึงต้องเปลี่ยนพฤติกรรมนี้
ตอนนี้ทางฝั่ง tmux ปฎิเสธจะดึง dbus เข้ามา และระบุว่าถ้ามี API ให้ใช้งานง่ายๆ ก็จะพิจารณาอีกที
ที่มา - Github: tmux , Debian Bug #825394
Comments
ไม่ชอบ systemd จัดไป http://without-systemd.org
เกลียด systemd พอๆ กับ selinux และ apparmor
ทำไมถึงจะครองโลกรึครับ ^^
"ทางฝั่ง systemd ระบุว่าการปิดโปรแกรมทั้งหมดหลังผู้ใช้หลุดออกจากระบบเป็นค่าเริ่มต้นหลังจากมีปัญหาโปรแกรม GUI รันค้างไว้แม้ผู้ใช้จะล็อกเอาต์ไปแล้วก็ตามจึงต้องเปลี่ยนพฤติกรรมนี้"
เปลี่ยนแบบนี้จะดีขึ้นหรือเปล่าครับ
"ทางฝั่ง systemd ระบุว่าได้ตั้งค่าปิดโปรแกรมทั้งหมดหลังผู้ใช้หลุดออกจากระบบให้เป็นค่าเริ่มต้น เนื่องจากมีปัญหาโปรแกรม GUI รันค้างไว้ แม้ผู้ใช้จะล็อกเอาต์ไปแล้วก็ตาม"
scope ได้อันโนมัติ ?้ข้อเสียของแนวทางนี้ -> มีไม้โทหน้า ข
ผมเห็นด้วยนะถ้าแบบเดิม logout ออกมาแล้ว GUI ยังรันได้อยู่นี่มันไม่ใช่ล่ะ
ของ screen นี่นึกไม่ออกเลยว่าจะทำไง :)
ผมนี่ชอบ systemd มาก ทุกอย่างเป็นระบบ ให้อารมณ์คล้ายๆ Windows Service
เข้าใจว่า nohup ก็โดนด้วยใช่มั๊ยครับ
โดนครับ