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
user1219721
la source

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 [email protected] "nohup myscript.sh >/dev/null 2>&1 &"
Michael Hampton
la source
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