Tôi đang chạy lệnh dưới đây và giám sát tệp đầu ra trên hệ thống khác:
ssh $ip_address 'for n in 1 2 3 4 5; do sleep 10; echo $n >>/tmp/count; done'
Nếu tôi giết lệnh ssh bằng cách sử dụng ^C
hoặc chỉ bằng cách giết thiết bị đầu cuối mà tôi đã đăng nhập, tôi cũng mong lệnh từ xa cũng chấm dứt. Mặc dù vậy, điều này không xảy ra: /tmp/count
nhận được tất cả các số 1 trừ5 và ps -ejH
hiển thị lớp vỏ và sleep
con của nó tiếp tục chạy.
Đây có phải là hành vi dự kiến, và nó được ghi nhận ở bất cứ đâu? Tôi có thể vô hiệu hóa nó? Từ việc đọc xung quanh, tôi dự kiến sẽ phải kích hoạt một cách rõ ràng loại hành vi này với nohup, không phải là mặc định.
Tôi đã xem qua các trang hướng dẫn về ssh và sshd, nhưng không phát hiện ra điều gì rõ ràng và Google chỉ cho tôi các hướng dẫn để bật hành vi này chứ không phải để tắt.
Tôi đang chạy Red Hat Enterprise Linux 6.2, với đăng nhập gốc và bash shell trên cả hai hệ thống.
-tt
thay vì-t
nếu bản thân ssh không có phân bổ tty. SSH sẽ không nhận được tty được phân bổ nếu ssh được nền ngay lập tức khi gọi qua các tùy chọn như-f
hoặc-n
.