Удаление <some command> | netcat на задний план через ssh

Для проекта я использую удаленный компьютер для запуска двоичного кода и передачи вывода на сервер журнала через 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,

2

Ответов: 1


2 принят

Я думаю, что это проблема с sshожиданием ввода-вывода со стандартного вывода и стандартной ошибки.

Попробуйте перенаправить все выходные данные на /dev/null:

ssh user@host "(nohup sleep 3 && echo test | tee ~/test.log) >/dev/null 2>&1 &"
Баш, SSH, трубы, фон-процесс, Netcat,
Похожие вопросы
Яндекс.Метрика