Как я могу запустить удаленный процесс на удаленной машине через ssh?

Я хочу запустить сценарий оболочки, который находится на удаленной машине. Когда я использую

ssh user@example.com /path/to/script.sh 

ему нужно, чтобы ssh-соединение было открыто до тех пор, пока скрипт не завершится.

Но мне нужно, чтобы скрипт продолжал работать, даже после закрытия ssh-соединения, пока скрипт не завершится сам собой. Я просто хочу начать процесс, а потом забыть об этом.

Как я могу сделать это с помощью ssh?

Большое спасибо!

PS: Это не дубликат этого вопроса о загрузке .

  • Автоматически копировать определенную папку с каждой удаленной машины на главную машину
  • Как я могу получить адрес моей локальной машины?
  • Сохранение процесса, запускающегося после закрытия оболочки, порожденной идеей
  • Соединяет ли ssh соединения в туннеле отдельно?
  • «Недопустимый ключ MIT-MAGIC-COOKIE-1» при попытке запуска программы удаленно
  • пересылка веб-трафика через vps, работающий на Ubuntu в другой стране
  • Ограниченное удаленное выполнение ssh с аргументами
  • Перемещение мыши над терминальным окном генерирует escape-последовательности
  • One Solution collect form web for “Как я могу запустить удаленный процесс на удаленной машине через ssh?”

    Я считаю, что проблема в том, что когда сеанс SSH закрыт (нажатием ctrl-c или закрытием xterm), HUP отправляется процессу. Чтобы разветвить процесс в фоновом режиме, добавьте & , и чтобы заблокировать hup, используйте nohup :

    ssh user@example.com 'nohup sleep 300 >/dev/null 2>/dev/null </dev/null &'

    Ssh должен начаться, и процесс будет запущен на example.com в фоновом режиме.

    Если вы хотите следить за его прогрессом, вы можете использовать screen , если вы хотите это сделать, то что-то похожее на это поможет:

    ssh user@example.com -t 'screen -D -RR -S this /bin/sleep 300'

    Это создает сеанс экрана с именем «this» (-S), отделяет уже запущенный экран, если он подключен в другом месте и снова подключается. Затем запускается / bin / sleep с ожиданием 5 минут.

    Linux и Unix - лучшая ОС в мире.