Я думаю, что это проблема с ssh
ожиданием ввода-вывода со стандартного вывода и стандартной ошибки.
Попробуйте перенаправить все выходные данные на /dev/null
:
ssh user@host "(nohup sleep 3 && echo test | tee ~/test.log) >/dev/null 2>&1 &"
Для проекта я использую удаленный компьютер для запуска двоичного кода и передачи вывода на сервер журнала через netcat.
Пример:
ssh <user>@<host> -p <port> -o IdentitiesOnly=yes -o PreferredAuthentications=publickey -i key nohup <some long running command> | nc <log_host> <log_port> &
Я хочу, чтобы ssh-соединение выходило, как только команды переходят в фоновый режим.
Процесс успешно падает на задний план (я считаю), но я не могу понять, как завершить соединение ssh < user > @ < host > "nohup sleep 3 && echo test | tee ~ / test.log & exit" .
Я тоже пытался использовать экран, но это было после того, как я так много возился с этим, и, честно говоря, я очень устал и очень запутался, и мне было сложно разобраться с различными проблемами. Я считаю, что второй набор глаз очень важен для достижения прогресса на этом этапе.
Просто для заметки, я попробовал более простую команду тестирования, и это тоже не сработает. ssh
ждет целых три секунды, вместо того, чтобы форматировать фоновую команду и немедленно завершать.
ssh
bash,ssh,pipe,background-process,netcat,