จะเกิดอะไรขึ้นกับกระบวนการที่ทำงานอยู่เมื่อฉันสูญเสียการเชื่อมต่อระยะไกลไปยังกล่อง * nix


16

ฉันสูญเสียการเชื่อมต่อ SSH ระยะไกลเป็นครั้งคราวกับ VPS ของฉัน ฉันใช้screenสำหรับกระบวนการที่ใช้เวลานาน แต่ฉันสงสัยว่าจะเกิดอะไรขึ้นกับกระบวนการที่ฉันทำงานนอกเหนือจากการทำงานเหล่านั้นภายในscreenเซสชันหากฉันขาดการเชื่อมต่อกับกล่อง

เมื่อฉันสร้างการเชื่อมต่อกับกล่องอีกครั้งเกิดอะไรขึ้นกับกระบวนการ bash และ sshd ที่ทำงานเมื่อฉันขาดการเชื่อมต่อ วันนี้ฉันขาดการเชื่อมต่อซ้ำ ๆ และสังเกตเห็นกระบวนการ bash และ sshd อีกมากมายกว่าปกติ

หากมีกระบวนการแขวนอยู่รอบ ๆ ฉันต้องฆ่าพวกเขาหรือไม่ ฉันจะทราบได้อย่างไรว่ากระบวนการใดถูกทอดทิ้งจากเซสชันก่อนหน้าของฉัน

ขอบคุณสำหรับคำตอบใด ๆ !

คำตอบ:


8

โดยปกติกระบวนการจะยุติลงเมื่อขาดการเชื่อมต่อ แต่เซสชัน SSH เก่าอาจรอการหมดเวลาหรือพวกเขาอาจหยุดเมื่อออกเนื่องจากสภาพการแข่งขัน

คุณควรยุติเซสชันเก่าแม้ว่าคุณไม่จำเป็นต้องทำ พิมพ์ps auxบนคอนโซลเพื่อแสดงรายการกระบวนการจากนั้นkill PIDสำหรับแต่ละเซสชันที่หยุดทำงาน ssh โดยที่ PID คือ PID (ID กระบวนการ) สำหรับเซสชันนั้น เซสชันที่เก่าและไม่ทำงานควรมี PID ต่ำกว่าเซสชันใหม่ปัจจุบันของคุณ

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

nohup badblocks -nvs /dev/sda &

0

เมื่อเซสชั่น ssh ตาย pseudo-tty ที่เกี่ยวข้องจะถูกปิดและรีเซ็ต โดยทั่วไปแล้วเชลล์และกระบวนการอื่น ๆ ที่เชื่อมโยงกับ tty นั้นจะถูกฆ่าเนื่องจากเป็นกระบวนการย่อยของกระบวนการที่สร้างขึ้น หากมีกระบวนการที่แขวนอยู่รอบ ๆ พวกเขาอาจถูก backgounded? ใช่พวกเขาอาจถูกฆ่าตาย - ความสะอาดอยู่ถัดจากความเป็นพระเจ้า พวกเขาใช้ทรัพยากรบางอย่างไม่มากนัก แต่ก็สามารถเพิ่มขึ้นได้หลังจากชั่วขณะหนึ่ง

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