Comment puis-je utiliser ssh pour exécuter une commande sur une machine Unix et quitter avant la fin de la commande?
Par exemple, si je tape
ssh localhost 'sleep 60 &'
ssh se bloque sur mon terminal jusqu'à la fin du sommeil, même si le sommeil est exécuté en arrière-plan.
&
extérieur des citations.Réponses:
SSH a un commutateur -f qui fait exactement la même chose que l'utilisation de nohup sur votre client mais permet à ssh de demander un mot de passe. Utilisez-le comme ça:
Mais : SSH vivra toujours en arrière-plan, donc si vous arrêtez le client avant la fin de la commande sur le serveur, il sera abandonné. Si vous souhaitez que la connexion ssh soit fermée après l'exécution de la commande, vous pouvez utiliser l'écran côté serveur:
la source
Utilisez nohup, redirection stdout / stderr et exécutez la commande en arrière-plan:
EDIT: Ou encore mieux, utilisez simplement le paramètre -f de ssh:
la source
&>/dev/null
.Ou après la connexion à l'aide de
ssh
, commencezscreen
si vous souhaitez revenir plus tard, pour regarder la progression ou la sortie.la source