Проблема:
Я хочу передать вывод по каналу 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 сессия близко.
Экран или tmux могут быть тем, что Вы ищете, сохраняя сессии, живые независимо от SSH.