Запустите фоновую команду по SSH

Проблема:

Я хочу передать вывод по каналу docker logs -f (для всех контейнеров) в другую команду и поддерживают его в рабочем состоянии на удаленном сервере. Я уже нашел Выполнение командой nohup по SSH, затем разъединитесь, но я не имел никакого успеха, принимающего решение этого варианта использования.

Что имеет, я попробовал до сих пор:

ssh server << EOF
for cont in `docker ps -q`; do
        docker logs -f $cont 2>&1 | bunyan | /var/opt/go-logsink/go-logsink connect 2>&1 &
done
EOF

версия nohup: nohup "docker logs -f $cont 2>&1 | bunyan | /var/opt/go-logsink/go-logsink connect"

Выполнение того цикла в рамках экранной сессии работает, но я хочу автоматизировать вызов после развертывания, и это не работает. Также я пытался звонить nohup "<command>" в цикле и я вижу, что он создает процесс после разъединения ssh, процессы уничтожаются.

Вопрос:

Как выполнить тот цикл, таким образом, он создает процессы, которые остаются в живых после ssh сессия близко.

2
задан 13 April 2017 в 15:23

1 ответ

Экран или tmux могут быть тем, что Вы ищете, сохраняя сессии, живые независимо от SSH.

1
ответ дан 2 December 2019 в 04:50

Другие вопросы по тегам:

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