Nohup over ssh ne reviendra pas


11

J'essaye de faire

[me@myPc]$ ssh me@server "nohup myBashScript.sh &"

Mon objectif est de lancer le processus sur le serveur, puis de revenir immédiatement.

Cela ne fonctionne pas: le travail est démarré sur le serveur, mais j'obtiens toujours la sortie sur myPc et bash attend la fin avant de me demander une autre commande.

Pourquoi ? Ce n'est pas censé le faire! Comment éviter cela?

  • myPc est RHEL6.2
  • le serveur est ubuntu 10.04et
  • les deux pistes openssh

Réponses:


12

Tant que l'entrée ou la sortie sont ouvertes, ssh gardera la connexion ouverte. Pour résoudre ce problème, assurez-vous que l'entrée et la sortie ne sont pas ouvertes.

Par exemple, utilisez ssh -net redirigez votre sortie:

ssh -n me@example.com "nohup myscript.sh >/dev/null 2>&1 &"

Que se passe-t-il si je veux toujours me myscript.shdonner une sortie, mais que la session ssh se termine toujours une fois le script terminé? Dans mon cas, le script lui-même démarre le processus nohup, puis revient. J'avais l'impression que ssh -Tcela m'aiderait à le faire.
Gauthier

@Gauthier Il suffit ensuite d'exécuter le script sans nohup.
Michael Hampton

Je fais. Le script démarre d'autres commandes avec nohup et &, puis se termine. Mais ssh ne revient pas. Les commandes appelées dans le script redirigent stdout vers des fichiers. Oh, mais pas stderr et stdin, cela pourrait-il être pourquoi?
Gauthier

Voilà! L'entrée et la sortie doivent être redirigées.
Michael Hampton

Ce que je ne comprends pas, c'est que si je me connecte et que j'obtiens un tty, démarre le script qui démarre les commandes nohup &, puis je suis autorisé à me déconnecter de la session ssh. Il ne se plaint pas qu'il existe des entrées et des sorties ouvertes. N'est-ce pas ce qui ssh -test censé imiter?
Gauthier
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.