SSH ไม่สิ้นสุดหลังจากออกเมื่อมีโปรแกรม X Forward


9

หลังจากรันโปรแกรม X ผ่าน SSH แล้ว SSH จะไม่ยุติหลังจาก shell exit (ต้องใช้เช่นCtrlCเพื่อฆ่ามัน)

ฉันเดาว่าแม้ว่าโปรแกรม X จะออกไปแล้วยังมี "การเชื่อมต่อ" เหลืออยู่ (ยังไม่ว่าง) มีข้อยกเว้นที่ฉันได้พบในขณะนี้และgtk-demoacroread

ไม่มีใครรู้เหตุผลหรือไม่ นี่เป็นปัญหาของการกำหนดค่า ssh {, d} หรือไม่


1
คุณสามารถทดสอบสิ่งนี้ได้ด้วยตัวเอง เรียกใช้ ssh ด้วย -v และจะรายงานการเชื่อมต่อ X11 ที่เปิดและปิด
Kyle Jones

@ KyleJones THX, ดูเหมือนว่านี่เป็นปัญหา (กด "การเชื่อมต่อ" สองครั้งหลังจากC-cถูกกด)
yuyichao

ฉันมีปัญหาเดียวกันกับ SLES11 กับหน้าต่าง X11 ใด ๆ คุณติดตามไปยัง dbus อย่างไร
นิลส์

คุณสามารถตรวจสอบกระบวนการทำงานตามที่คุณ (ถ้าไม่มีเซสชันอื่นที่ใช้งานอยู่) ฉันใช้ systemd และเปิดใช้งานใน sshd (การตั้งค่า pam) ดังนั้นกระบวนการทั้งหมดในเซสชัน ssh อยู่ใน cgroup เดียวกันซึ่งทำให้ง่ายต่อการตรวจสอบจริง ๆ ~~
yuyichao

คำตอบ:


5

การเริ่มต้นโปรแกรม X อาจเริ่มต้นกระบวนการพื้นหลังที่ไม่สิ้นสุดเมื่อคุณปิดโปรแกรม (หรือโปรแกรมนั้นไม่ได้หยุดอย่างถูกต้อง) ดูที่นี่สำหรับคำอธิบายสิ่งที่เกิดขึ้น

ในการแก้ไขปัญหานี้คุณสามารถลองค้นหาว่ากระบวนการใดยังทำงานอยู่และป้องกันไม่ให้กระบวนการเริ่มต้นเมื่อคุณลงชื่อเข้าใช้ผ่าน SSH หรือเพียงแค่ฆ่าพวกเขาก่อนที่คุณจะออกจากระบบ คุณสามารถฆ่าการเชื่อมต่อ SSH ได้อย่างแน่นอนเมื่อคุณออกจากระบบแล้ว


K ปัญหาคือกระบวนการ dbus (gconf) ยังคงทำงานอยู่ (ขอบคุณsystemd-cgls~~) (ฉันพยายามให้killall -KILLโปรแกรมคิดว่ามันอาจแยกกระบวนการพื้นหลังมาก่อน แต่ก็ไม่ได้เป็นเช่นนั้น) ดังนั้นมีวิธีที่จะทำสิ่งที่ดีหรือไม่? (เช่น kill dbus (gconf) โดยอัตโนมัติ) THX
yuyichao

1
คุณสามารถใส่killall dbusหรืออะไรแบบนั้นในของคุณ.logoutแต่นั่นอาจทำให้สับสนสิ่งอื่น ๆ (เช่นเมื่อคุณเข้าสู่ระบบในเครื่อง)
Lars Kotthoff

อืมดูเหมือนว่าฉันต้องทำสิ่งนี้ด้วยตนเอง (เช่นไม่มีตัวเลือกโดยตรงสำหรับสิ่งนั้น) อย่างน้อยฉันก็กำลังใช้งานอยู่kill-session=1และหวังว่า systemd สามารถบอกฉันได้ว่าเป็นกระบวนการที่เหมาะสมในการฆ่า (เช่นไม่ใช่กระบวนการฆ่าในช่วงอื่น ๆ ) ~~~ ขอบคุณ
yuyichao
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.