13

Как я могу использовать ssh для запуска команды на компьютере с Unix и выхода до ее завершения?

Например, если я наберу

ssh localhost 'sleep 60 &'

ssh висит на моем терминале, пока сон не завершится, хотя сон работает в фоновом режиме.

3 ответа3

17

SSH имеет ключ -f, который делает то же самое, что и использование nohup на вашем клиенте, но позволяет ssh запрашивать пароль. Используйте это так:

ssh localhost -f 'command'

Но: SSH по-прежнему будет работать в фоновом режиме, поэтому, если вы выключите клиент до завершения выполнения команды на сервере, он будет прерван. Если вы хотите, чтобы соединение ssh было закрыто после выполнения команды, вы можете использовать экран на стороне сервера:

ssh localhost -f 'screen -d -m sleep 60'
6

Используйте перенаправление nohup, stdout/stderr и выполните команду в фоновом режиме:

 nohup ssh localhost 'sleep 60' >/dev/null 2>/dev/null &

РЕДАКТИРОВАТЬ: Или даже лучше, просто используйте параметр sf sf:

ssh -f localhost 'sleep 60'
2

Или после входа в систему с помощью ssh , начальный screen если вы хотите вернуться позже, чтобы посмотреть прогресс или результаты.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .