J'ai besoin d'exécuter des commandes SSH à distance avec la sortie affichée localement. Mais si la connexion est interrompue, je veux que la commande continue de s'exécuter.
Je ne parle pas tellement de connexion et d'exécution mais de faire ssh user @ remotehost 'commandes && commande etc'
Comment puis-je m'assurer que la commande s'exécute même si la connexion est interrompue?
la source
Cherchez-vous à avoir une session persistante que vous pouvez reprendre, ou tout simplement pour empêcher une déconnexion de tuer l'exection?
Pour les premiers, utilisez
screen
, pour les secondsnohup
,.la source
Comme mentionné précédemment,
screen
peut faire tout le tour. Mais pas seulement ce dont vous avez besoin. J'utilise screen depuis des années et je l'utilise maintenant chaque fois que je me connecte aux systèmes. Essayez d'installerscreen
et de créer~/.screenrc
avec une telle configuration:Exécutez ensuite
screen -Rd vcf
. C'est l'invocation préférable de l'écran. Vous vous reconnecterez à la session précédemment créée avec le nom vcf * (ou serez averti si ambigu) ou, si la session n'est pas encore ouverte, elle sera créée. CTRL+ Aest une méta clé qui fait tout.CTRL+A C
( CTRL+ A, puis C) créer une nouvelle fenêtre (écran) à l'intérieur de la session.CTRL+A SPACE
déplacer le focus vers la fenêtre suivante dans un tour.CTRL+A D
détacher la session en cours en gardant toutes les fenêtres fonctionnelles entre les connexions. Si vous avez lancé une tâche looooong, vous pouvez vous détacher de l'écran et le rattacher plus tard pour voir ce qui se passe. La même chose se produit si votre session ssh est perdue - l'écran reste vivant avec toutes les fenêtres ouvertes et toutes les tâches lancées.Si vous voulez fermer une fenêtre à l'intérieur de l'écran - juste à
exit
partir du shell. Si vous souhaitez fermer tous les shells / tâches dans toutes les fenêtres et quitter l'écran - appuyez simplement surCTRL+A CTRL+\
et appuyez sur "Y" lorsque vous y êtes invité.Pour tout le reste, voir l'écran homme.
la source
J'ai vu cette alternative à une connexion ssh fiable "like":
http://mosh.mit.edu/
la source
Je fais habituellement:
la source