Есть очень похожий вопрос на этот, но в моей ситуации есть дополнительная деталь.
В основном я использую ControlMaster для ускорения SSH-соединений. Итак, я использую:
CurrentUser=$(whoami)
session=$(ps -el | grep $(id -u) |sed -e 's/sshd//g'| grep ssh)
if [ "$session" = "" ]
then
ssh -TMNf synchro@129.130.155.30 &
fi
После этого кода у меня есть другая команда. Цель команды ssh - исключительно работать в фоновом режиме, чтобы поддерживать открытый сокет для более быстрых подключений (если в течение короткого времени не происходит никаких вызовов, он истекает по времени и закрывается из-за неактивности.)
Проблема в том, что этот скрипт не закрывается и не возвращается к вызывающему. Он становится <несуществующим> процессом и не возвращается, пока я вручную не завершу созданный сеанс ssh. Как разрешить скрипту вернуться к вызывающему и Созданный ssh работает в фоновом режиме?
Редактировать: Я хочу, чтобы созданный сеанс ssh сохранялся после завершения сценария, чтобы после этого сокет оставался открытым для более быстрых подключений с помощью команды rsync. С открытым сокетом я перехожу с 3-4 секунд передачи на миллисекунды
Как насчет того, чтобы попробовать autossh:
http://www.harding.motd.ca/autossh/
Он управляет SSH-соединением за вас и возвращается к вызывающему, как только вы его запускаете.
вы хотите работать с нету команда?