Я скопіював фрагмент Bash у фонову команду ssh, що виконується віддалено:
ssh user@remote <<CMD
some process <&- >log 2>error &
CMD
Що робить <&-
?
Я здогадуюсь, що це те саме, що< /dev/null
Моє наступне розуміння , що три основні файлові дескриптори ( stdin
, stdout
, stderr
) повинні бути закриті , щоб запобігти:
- Робота, яку виконують у фоновому режимі, і сценарій, що виходить - якось конфліктують?
- Коли термінал закривається, всі процеси, які приймають stdin від терміналу, закриваються?
ssh -nNT user@remote 'command'
створить неінтерактивний сеанс SSH. Додайте &
до фону, додайте nohup
до, command
щоб продовжувати працювати, якщо ваше з'єднання загине.
man ssh
припускає, що -N повністю відключає запуск віддаленої команди, і швидкий тест це підтримує.