Gõ ~.
thực sự không lừa đóng tất cả các kết nối "lồng" đến sâu nhất.
Nó làm như vậy với lối thoát thân thiện mà bạn muốn miễn là tất cả các vỏ của bạn được cấu hình để xử lý SIGHUP như một cái chết duyên dáng. Bash làm như vậy theo mặc định. Bạn có thể dễ dàng kiểm tra lối ra thân thiện cho thiết lập của bạn bằng cách ví dụ như nhìn thấy cho dù các .bash_history
file của phiên sâu hơn của bạn được cập nhật đúng cách sau ~.
, hoặc nếu bạn thiết lập bash-es của bạn không cập nhật .bash_history khi xuất cảnh sau đó bạn có thể đặt trap
trên Sự kiện EXIT (hoặc trong của bạn ~/.bash_logout
) với một lệnh viết một cái gì đó ở đâu đó và sau đó xem liệu nó có được thực thi hay không.
Ngoài ra, tôi không chắc ý của bạn là gì khi "thoát tất cả các phiên trong shell hiện tại". Mỗi bash tương tác chỉ là một phiên và các lệnh bạn nhập sẽ luôn chỉ đến lớp vỏ sâu nhất của chuỗi ProxyJump. Nếu bạn có nghĩa là "các công việc nền trong trình bao hiện tại", bash sẽ gửi SIGHUP cho tất cả các công việc của nó khi nhận SIGHUP bởi ssh daemon trên ~.
, do đó lối thoát như vậy sẽ hoàn toàn có thể thực hiện được nếu các công việc đang chạy phản ứng đúng với SIGHUP.
~.
chỉ ngắt kết nối máy khách SSH của bạn (chẳng hạn như hữu ích khi mạng biến mất). Thông thường, trình nền SSH sẽ nhận ra điều đó và báo hiệu phiên của nóSIGHUP
, vì vậy nó không hoàn toàn giống với việc thoát vỏ thông thường (nhưng sẽ hữu ích nếu bạn không nhận được bất kỳ phản hồi nào từ trình bao).