2 votes

Lancer une commande en arrière-plan via SSH

Problème :

Je veux envoyer la sortie de docker logs -f (pour tous les conteneurs) dans une autre commande et la laisser tourner sur le serveur distant. J'ai déjà trouvé Exécutez une commande nohup en SSH, puis déconnectez-vous. mais je n'ai pas réussi à adopter la solution pour ce cas d'utilisation.

Ce que j'ai essayé jusqu'à présent :

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

version nohup : nohup "docker logs -f $cont 2>&1 | bunyan | /var/opt/go-logsink/go-logsink connect"

L'exécution de cette boucle dans une session d'écran fonctionne, mais je veux automatiser l'appel après un déploiement et cela ne fonctionne pas. J'ai également essayé d'appeler nohup "<command>" dans la boucle et je vois qu'il crée le processus, à la déconnexion de ssh les processus sont tués.

Pregunta:

Comment exécuter cette boucle pour qu'elle crée des processus qui restent en vie après la fermeture de la session ssh.

1voto

Simon Jackson Points 99

Screen ou tmux peuvent être ce que vous recherchez, en préservant les sessions en vie indépendamment de SSH.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X