Как я заставляю ssh работать в фоновом режиме, не используя-f?

если Вы не должны будете делать этого в powershell затем, то следующее будет работать

schtasks / запрашивают | findstr/i "mytask"

версия PS
schtasks / запрашивают |? {$ _ - как 'mytask'}

4
задан 29 February 2012 в 16:19
3 ответа

The shell builtin you're looking for is disown, which re-parents backgrounded jobs to init so that the script can exit leaving them safely in the background. You probably want to redirect output to /dev/null (or a log file) in order to avoid getting output in the shell after starting the script.

ssh hostname 'command' &>/dev/null &
disown
3
ответ дан 3 December 2019 в 03:33

Разве wait не заставляет ваш скрипт эм-ждать? На странице руководства ...

подождите [n ...] Дождитесь завершения каждого указанного процесса и верните его статус завершения. Каждый n может быть идентификатором процесса или заданием. катион; если задана спецификация задания, ожидаются все процессы в конвейере этого задания. Если n не указано, все Ожидаются активные в настоящее время дочерние процессы, и статус возврата равен нулю. Если n указывает несуществующий процесса или задания, статус возврата - 127. В противном случае статус возврата - это статус выхода последнего процесса. или задание ожидалось.

Итак, ваш сценарий ожидает завершения туннеля ssh перед тем, как вернуться в командную строку. просто удалите wait , и вы получите ответ, и ваш туннель будет работать в фоновом режиме.

1
ответ дан 3 December 2019 в 03:33

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

Конечно, это при условии, что я SSH Я попал в другую машину с моего терминала.

0
ответ дан 3 December 2019 в 03:33

Теги

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