หน้าจอ GNU และ PID เนมสเปซ


1

ฉันมีหน้าจอ GNU ทำงานในภาชนะ LXC จึงมี namespace PID ส่วนตัว ฉันกำลังพยายามแนบกับหน้าจอนั้นจาก "นอก" เนมสเปซ หน้าจอทั้งสองใช้ระบบไฟล์ร่วมกันจึงสามารถเข้าถึงซ็อกเก็ตเดียวกันได้ "ภายนอก" screen -ls แสดงรายการเซสชันอย่างถูกต้อง แต่พยายามแนบ screen -x ล้มเหลวด้วย " แนบความพยายามด้วย pid ที่ไม่ดี (XXX)! "ข้อความบนหน้าจอเดิมที่ใช้งานภายในคอนเทนเนอร์ lxc หน้าจอ" แนบภายนอก "รอ 15 วินาทีและออกด้วย" ทันใดนั้นดันเจี้ยนก็ถล่ม !! - คุณตาย ... ข้อความ "และ 1 เป็นรหัสข้อผิดพลาด

โปรแกรมแนบ "ภายนอก" สามารถแยกหน้าจอแยกจากระยะไกล screen -d แต่ยังคงมีการหมดเวลา 15 วินาทีและข้อผิดพลาด 'ยุบ' ตัวเชื่อมต่อ "ภายนอก" สามารถเรียกใช้งานคำสั่งด้วย screen -X ไม่มีปัญหา อย่างไรก็ตาม screen -Q ส่งคำสั่งไปยังหน้าจอที่ใช้งานจากนั้นแขวนและรอ Ctrl + C ทิ้งซ็อกเก็ตที่ตายแล้วต่อท้าย -queryA ใน /var/run/screen/.

นั่นเป็นเรื่องธรรมดาที่หน้าจอ "ภายใน" ไม่สามารถมองเห็นหน้าจอ "ภายนอก" เนื่องจากไม่ได้แชร์เนมสเปซ เป็นไปได้หรือไม่ที่จะปิดหน้าจอตรวจสอบ PID? ทำไมเราต้องมีการตรวจสอบนั้นในขณะที่เชื่อมต่อกับหน้าจออยู่ดี การเข้าถึงซ็อกเก็ตไม่เพียงพอที่หน้าจอจะสื่อสารกันอย่างเหมาะสมหรือไม่

ปรับปรุง : ฉันได้ส่งคำขอไปยัง หน้าจอ devel maillist ผ่านรายงานข้อผิดพลาด # 35324 .


เป็นไปได้หรือไม่ที่คอนเทนเนอร์มองเห็นกระบวนการภายนอกว่ามี PID == 1 รหัสที่มาของ screen ปฏิเสธ PID 1 อย่างชัดเจนด้วยสาเหตุที่ไม่ทราบสาเหตุ
grawity

ภายในคอนเทนเนอร์ LXC จะเห็นเฉพาะกระบวนการภายในเท่านั้น ระหว่างกระบวนการภายในมีกระบวนการที่มี PID 1 แต่เป็นกระบวนการที่เปิดตัวผ่าน lxc และกระบวนการที่วางหน้าจอ "ภายใน" ในภายหลัง หน้าจอภายในได้รับ PID ที่ถูกต้องของหน้าจออุปกรณ์แนบมันไม่สามารถเข้าถึงได้เนื่องจากเนมสเปซ pid แตกต่างกัน
myroslav

"ภายในคอนเทนเนอร์ LXC จะเห็นเฉพาะกระบวนการภายใน" - นั่นอาจเป็นสาเหตุหนึ่ง แต่การเชื่อมต่อซ็อกเก็ต Unix จะส่ง PID ของไคลเอ็นต์ไปยังเซิร์ฟเวอร์โดยอัตโนมัติ นั่นคือ สิ่งที่ฉันถามเกี่ยวกับ
grawity

ปัญหากับการไม่สามารถเข้าถึงกระบวนการด้วย pid "ภายนอก" คืออะไร? ตามที่ฉันเขียนด้วยตัวเองคำถามหน้าจอ -X ส่งคำสั่งไปยังหน้าจอสำเร็จ
myroslav

... คุณจะต้องถามผู้พัฒนาหน้าจอเกี่ยวกับเรื่องนี้ ฉันพบเช็คเท่านั้น แต่ไม่ได้เขียนว่าทำไมจึงเพิ่มเช็ค
grawity
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.