Как я могу использовать ssh для запуска команды на компьютере с Unix и выхода до ее завершения?
Например, если я наберу
ssh localhost 'sleep 60 &'
ssh висит на моем терминале, пока сон не завершится, хотя сон работает в фоновом режиме.
Как я могу использовать ssh для запуска команды на компьютере с Unix и выхода до ее завершения?
Например, если я наберу
ssh localhost 'sleep 60 &'
ssh висит на моем терминале, пока сон не завершится, хотя сон работает в фоновом режиме.
Ответы:
SSH имеет ключ -f, который делает то же самое, что и nohup на вашем клиенте, но позволяет ssh запрашивать пароль. Используйте это так:
ssh localhost -f 'command'
Но : SSH по-прежнему будет работать в фоновом режиме, поэтому, если вы выключите клиент до завершения выполнения команды на сервере, он будет прерван. Если вы хотите, чтобы соединение ssh было закрыто после выполнения команды, вы можете использовать экран на стороне сервера:
ssh localhost -f 'screen -d -m sleep 60'
Используйте nohup, перенаправление stdout / stderr и выполните команду в фоновом режиме:
nohup ssh localhost 'sleep 60' >/dev/null 2>/dev/null &
РЕДАКТИРОВАТЬ: Или даже лучше, просто используйте параметр sf sf:
ssh -f localhost 'sleep 60'
&>/dev/null
.
&
пределами цитаты.