เรื่องนี้เกิดขึ้นหลายครั้ง
ในขณะที่ SSH ทำงานอยู่ฉันเหนื่อยมากและปิดสถานีโดยไม่ต้อง exit
การทำเช่นนั้นเป็นอันตรายหรือไม่?
IGNOREEOF
(ในbash
) เพราะคุณยังใช้ Multiplexer ขั้วและก็เริ่มเบื่อบางครั้ง mistyping ^a d
เป็น^d
จึงเลิกโดยไม่ได้ตั้งใจ
เรื่องนี้เกิดขึ้นหลายครั้ง
ในขณะที่ SSH ทำงานอยู่ฉันเหนื่อยมากและปิดสถานีโดยไม่ต้อง exit
การทำเช่นนั้นเป็นอันตรายหรือไม่?
IGNOREEOF
(ในbash
) เพราะคุณยังใช้ Multiplexer ขั้วและก็เริ่มเบื่อบางครั้ง mistyping ^a d
เป็น^d
จึงเลิกโดยไม่ได้ตั้งใจ
คำตอบ:
ไม่ใช่เลย. เมื่อกระบวนการเทอร์มินัลจบลงกระบวนการไคลเอนต์ภายในก็จะตายเช่นกันและเมื่อสิ่งนี้เกิดขึ้นการเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลจะถูกปิดโดยระบบปฏิบัติการ เซิร์ฟเวอร์จะเห็นการเชื่อมต่อปิดและยุติกระบวนการบนเซิร์ฟเวอร์
อย่างไรก็ตามมันเป็นไปได้ที่คุณอาจจะจบลงด้วยกระบวนการที่เอ้อระเหยบนเซิร์ฟเวอร์หากพวกเขามีพื้นหลังและละเว้นสัญญาณบางอย่าง
เมื่อเราปิดเครื่องโดยตรงมันจะสร้างสัญญาณ SIGHUP สัญญาณนี้จะฆ่างาน / กระบวนการทั้งหมดภายใต้สถานีโดยอัตโนมัติ / ทันที ดังนั้นจึงไม่มีปัญหาเกิดขึ้น
สิ่งนี้อาจไม่เป็นความจริง หาก bash กำลังทำงานลูปก็สามารถข้าม SIGHUP และดำเนินการต่อเซสชัน ฉันกำลังพยายามหาสาเหตุที่เกิดขึ้น
นอกจากนี้กระบวนการปิดระบบได้รับการบันทึกไว้ที่นี่เป็นอย่างดี แต่เห็นได้ชัดว่า Systemd ได้เปลี่ยนพฤติกรรมบางอย่าง
/server/463366/does-getting-disconnected-from-an-ssh-session-kill-your-programs
Ctrl+D
สองครั้งแทนAlt-F4
หรือCtrl-Q
สิ่งนี้จะส่งสัญญาณทางออกไปยัง ssh ปัจจุบันของคุณจากนั้นไปที่เปลือกของคุณและเทอร์มินัลอีมูเลเตอร์ควรปิดโดยอัตโนมัติโดยไม่ใช้เชลล์ แก้ไขปัญหา.