Я запускаю команду нижче та відслідковую вихідний файл в іншій системі:
ssh $ip_address 'for n in 1 2 3 4 5; do sleep 10; echo $n >>/tmp/count; done'
Якщо я вбиваю команду ssh за допомогою ^Cабо просто вбиваю термінал, на який я ввійшов, я також очікую, що віддалена команда також припиниться. Однак цього не відбувається: /tmp/countотримує всі числа 1–5 незалежно і ps -ejHпоказує оболонку та її sleepдитина продовжує працювати.
Це очікувана поведінка і чи це документально десь зафіксовано? Чи можу я його відключити? Почитавши навколо, я очікував, що я повинен мати можливість чітко включити таку поведінку з nohup, не для того, щоб це було типовим.
Я переглянув сторінки man для ssh та sshd, але не помітив нічого очевидного, і Google вказує мені на вказівки щодо вмикання такої поведінки, а не для її вимкнення.
У мене працює Red Hat Enterprise Linux 6.2, з кореневим входом та оболонкою bash в обох системах.
-ttзамість того, щоб,-tякщо сам ssh не виділив tty. SSH не отримає виділений tty, якщо ssh буде фоновим одразу після виклику через параметри типу-fабо-n.