Я предполагаю, что этот скрипт долго работает.В этом случае вам необходимо отсоединить процесс от терминала, который вы хотите закрыть при завершении сеанса SSH.
Фактически вы уже выполнили большую часть работы, переназначив stdout
и stderr
на /dev/null
, однако вы не сделали этого для stdin
.
Я использовал тестовый пример:
ssh localhost
nohup sleep 10m &> /dev/null &
^D
# hangs
Пока
ssh localhost
nohup sleep 10m &> /dev/null < /dev/null &
^D
# exits
Я секундуюРекомендация по использованию превосходного gnu screen
, который, помимо прочего, сделает этот сервис для вас.
О, а вы рассматривали запуск сценария напрямую, а не внутри оболочки?Т.е.:
ssh user@host script.sh