запуск фонового задания на удаленном хосте через ssh приводит к зависанию вызывающего сценария

apk fix

Эта команда выводит список ошибок и исправляет их.

1
24.03.2021, 10:11
2 ответа

Обнаружил проблему, добавив это в конец строки nohup (прямо перед &)

> foo.out 2> foo.err < /dev/null

спасибо @berndbausch за то, что указал мне правильное направление!

0
28.04.2021, 22:57

Пояснение

Вы указали команду с(/bin/bash)по sshбез -t, поэтому на удаленной стороне не выделен tty. Затем происходят две вещи:

  • nohupне перенаправляет стандартные потоки(как было бы при наличии tty);

  • SSH-сервер ожидает eof перед отключением, локальный sshпродолжает работать.

    And eof happens when there's no file descriptor by any process open on the writing end of the pipe, which typically only happens when all the processes that didn't have their stdout redirected to something else are gone.

Перенаправление стандартных потоков, подобных , которые вы сделали в своем ответе , приводит к преждевременному отключению сервера SSH.

3
28.04.2021, 22:57

Теги

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