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.