(SSH) การปิดสถานีโดยไม่ต้อง "ออก" เป็นอันตรายหรือไม่?


24

เรื่องนี้เกิดขึ้นหลายครั้ง

ในขณะที่ SSH ทำงานอยู่ฉันเหนื่อยมากและปิดสถานีโดยไม่ต้อง exit

การทำเช่นนั้นเป็นอันตรายหรือไม่?


เพียงแค่กดCtrl+Dสองครั้งแทนAlt-F4หรือCtrl-Qสิ่งนี้จะส่งสัญญาณทางออกไปยัง ssh ปัจจุบันของคุณจากนั้นไปที่เปลือกของคุณและเทอร์มินัลอีมูเลเตอร์ควรปิดโดยอัตโนมัติโดยไม่ใช้เชลล์ แก้ไขปัญหา.
Profpatsch

@Profpatsch: เว้นแต่ของหลักสูตรที่คุณใช้IGNOREEOF(ในbash) เพราะคุณยังใช้ Multiplexer ขั้วและก็เริ่มเบื่อบางครั้ง mistyping ^a dเป็น^dจึงเลิกโดยไม่ได้ตั้งใจ
0xC0000022L

คำตอบ:


28

ไม่ใช่เลย. เมื่อกระบวนการเทอร์มินัลจบลงกระบวนการไคลเอนต์ภายในก็จะตายเช่นกันและเมื่อสิ่งนี้เกิดขึ้นการเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลจะถูกปิดโดยระบบปฏิบัติการ เซิร์ฟเวอร์จะเห็นการเชื่อมต่อปิดและยุติกระบวนการบนเซิร์ฟเวอร์

อย่างไรก็ตามมันเป็นไปได้ที่คุณอาจจะจบลงด้วยกระบวนการที่เอ้อระเหยบนเซิร์ฟเวอร์หากพวกเขามีพื้นหลังและละเว้นสัญญาณบางอย่าง


10

เมื่อเราปิดเครื่องโดยตรงมันจะสร้างสัญญาณ SIGHUP สัญญาณนี้จะฆ่างาน / กระบวนการทั้งหมดภายใต้สถานีโดยอัตโนมัติ / ทันที ดังนั้นจึงไม่มีปัญหาเกิดขึ้น


-1

สิ่งนี้อาจไม่เป็นความจริง หาก bash กำลังทำงานลูปก็สามารถข้าม SIGHUP และดำเนินการต่อเซสชัน ฉันกำลังพยายามหาสาเหตุที่เกิดขึ้น

นอกจากนี้กระบวนการปิดระบบได้รับการบันทึกไว้ที่นี่เป็นอย่างดี แต่เห็นได้ชัดว่า Systemd ได้เปลี่ยนพฤติกรรมบางอย่าง

/server/463366/does-getting-disconnected-from-an-ssh-session-kill-your-programs


มันจะดีกว่าถ้าคุณตรวจสอบการเรียกร้องของคุณก่อนที่จะตอบแทนที่จะตอบด้วย "สิ่งนี้อาจไม่เป็นความจริง"
Kusalananda

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