Nohup over ssh non ritorna


11

Sto provando a fare

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

Il mio obiettivo è avviare il processo sul server e quindi tornare immediatamente.

Non funziona: il lavoro viene avviato sul server, ma ottengo comunque l'output su myPc e bash attendo il completamento prima di chiedermi un altro comando.

Perché ? Non dovrebbe! Un modo per evitarlo?

  • myPc è RHEL6.2
  • il server è ubuntu 10.04e
  • entrambi corre openssh

Risposte:


12

Finché input o output sono ancora aperti, ssh manterrà la connessione aperta. Per risolvere questo problema, assicurarsi che l'input e l'output non siano aperti.

Ad esempio, utilizzare ssh -ne reindirizzare l'output:

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

Cosa succede se desidero ancora myscript.shdarmi un output, ma la sessione ssh termina ancora dopo che lo script è terminato? Nel mio caso, lo script stesso avvia il processo nohup, quindi ritorna. Avevo l'impressione che ssh -Tmi avrebbe aiutato a farlo.
Gauthier

@Gauthier Quindi esegui lo script senza nohup.
Michael Hampton,

Lo voglio. Lo script avvia altri comandi con nohup e &, quindi termina. Ma ssh non ritorna. I comandi richiamati nello script reindirizzano stdout ai file. Oh, ma non stderr e stdin, potrebbe essere perché?
Gauthier,

Ecco qui! Input e output devono essere reindirizzati.
Michael Hampton,

Quello che non capisco è che se effettivamente accedo e ottengo un tty, avvia lo script che avvia il nohup e i comandi, quindi mi è permesso disconnettermi dalla sessione ssh. Non si lamenta che ci siano input e output aperti. Non è quello che ssh -tdovrebbe imitare?
Gauthier,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.