พิมพ์ดีด~.
จริงไม่เคล็ดลับของการปิดทุกการเชื่อมต่อ "ที่ซ้อนกัน" ผ่านไปที่ลึกที่สุด
มันทำเช่นนั้นได้ด้วยทางออกที่เป็นมิตรที่คุณต้องการตราบใดที่กระสุนทั้งหมดของคุณได้รับการกำหนดค่าให้จัดการ SIGHUP ด้วยความตายที่สง่างาม Bash ทำตามค่าเริ่มต้น คุณสามารถตรวจสอบทางออกที่เป็นมิตรสำหรับการตั้งค่าของคุณด้วยเช่นเห็นว่า.bash_history
ไฟล์ของการประชุมลึกของคุณได้รับการปรับปรุงอย่างถูกต้องหลังจากที่~.
หรือถ้าคุณตั้งทุบตี-ES ของคุณจะไม่ .bash_history ปรับปรุงเมื่อออกแล้วคุณอาจตั้งtrap
บน ออกจากเหตุการณ์ (หรือในของคุณ~/.bash_logout
) ด้วยคำสั่งที่เขียนบางสิ่งและหลังจากนั้นดูว่ามีการดำเนินการหรือไม่
นอกจากนี้ฉันไม่แน่ใจว่าคุณหมายถึงอะไรโดย "ออกจากทุกเซสชันในเชลล์ปัจจุบัน" แต่ละ bash แบบโต้ตอบเป็นเพียงเซสชันเดียวและคำสั่งที่คุณพิมพ์ไปยังเชลล์ที่ลึกที่สุดของโซ่ ProxyJump เท่านั้น หากคุณหมายถึง "งานแบ็คกราวน์ในเชลล์ปัจจุบัน" bash จะส่ง SIGHUP ไปยังงานทั้งหมดที่ได้รับ SIGHUP โดย ssh daemon เมื่อ~.
, ดังนั้นการออกดังกล่าวควรจะเป็นมิตรอย่างสมบูรณ์ถ้างานที่ตอบสนองต่อ SIGHUP อย่างถูกต้อง
~.
เพียงยกเลิกการเชื่อมต่อไคลเอ็นต์ SSH ของคุณ (มีประโยชน์เมื่อเครือข่ายหายไป) โดยปกติ SSH daemon จะจดจำและส่งสัญญาณเซสชันด้วยSIGHUP
ดังนั้นจึงไม่เหมือนกับการเลิกใช้เชลล์ตามปกติ (แต่จะมีประโยชน์หากคุณไม่สามารถรับการตอบสนองใด ๆ จากเชลล์)