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

Это все еще блокируется:

ssh host nohup cmd

Это все еще оставляет соединение открытым:

ssh host nohup cmd &
3
задан 22.03.2010, 21:15

3 ответа

Попробуйте это:

ssh host batch cmd
1
ответ дан 08.12.2019, 01:48

& в Вашем примере отсоединит команду ssh, но не Вашу удаленную программу.

Это, кажется, работает:

хвост 'удаленного хоста ssh-f/var/log/syslog и' и

ssh remote-host 'tail -f /var/log/syslog > /dev/null &' &

Первое & отсоединит команду для удаленного хоста и второе & отсоединит саму команду ssh

В моем примере команда хвоста все еще бежит, я закрыл соединение.


отредактируйте это не делает, кажется, работает как tail выходы вскоре после соединения на самом деле закрываются.

Это может быть связано с тем, что это пишет в STDOUT который, вероятно, повысит поврежденный канал после того, как соединение будет закрыто

редактирование 2 хорошо работает при перенаправлении команды хвоста к/dev/null ^_^

Просто будьте осторожны и не пишите в stderr / stdout или перенаправляйте вывод локальному месту назначения

1
ответ дан 08.12.2019, 01:48

Следующее будет работать:

ssh myhost " nohup ./r.sh & " & sleep 2 ; kill -9 $! && echo

(по крайней мере, если Вам не предлагают пароль). В случае, если Вы, я не вижу простой способ сделать это.

0
ответ дан 08.12.2019, 01:48

Теги

Похожие вопросы