nohup non mostrerà il prossimo prompt nella sessione SSH
Supponiamo che io sia connesso tramite SSH su un sistema Ubuntu remoto. Voglio eseguire uno script lì usando nohup
in caso di potenziali interruzioni di connessione e reindirizzando il suo registro a un file. Il comando che eseguo è
nohup bash myscript.sh > log.txt &
Quindi, il terminale stampa il PID dello script e il messaggio:
nohup ignorando l'input e reindirizzando stderr a stdout
Il cursore si blocca e non sono in grado di eseguire altri comandi a meno che non esco dalla sessione SSH con Ctrl+ De ricollego. Preferirei che la sessione SSH rimanesse aperta e procedere al prompt del terminale successivo senza la necessità di riconnettersi. C'è un modo per ottenere questo risultato?
Risposte
Questo comando viene eseguito in background come ti aspetteresti. Tuttavia, in questa particolare istanza c'è una condizione di competizione in cui il messaggio di output viene scritto frazionalmente dopo il prompt della shell.
Il risultato visivo è che il prompt della shell precede il nohup
messaggio o che è completamente sovrascritto.
Il risultato pratico è che, poiché la shell ha scritto il suo prompt, è pronta per il comando successivo. Puoi premere Invio per generare un nuovo prompt o semplicemente digitare comunque il comando successivo.