systemd จะครองโลก, ปิดโปรแกรมทุกตัวหลังล็อกเอาต์ทำให้ screen และ tmux พัง

หัวข้อกระทู้ ใน 'เทคโนโลยี' เริ่มโพสต์โดย iPokz, 30 พฤษภาคม 2016.

  1. iPokz

    iPokz ~" iPokz "~ Staff Member

    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

    Topics: systemdLinux
     

แบ่งปันหน้านี้