Terminare in uscita con "nohup ./my_script &" => "Hai lavori in esecuzione". OK per uscire?


12

Supponiamo che esegua quanto segue su una casella remota con l'idea di impedire l'uccisione del lavoro quando disconnetto il terminale.

nohup ./my_script.sh &

Quando provo ad uscire dal mio terminale, ho ricevuto il seguente avviso:

zsh: you have running jobs

Presumo che sia ok. Mi sta solo dicendo che ho un processo / processo in esecuzione in background. Se disconnetto il terminale, il processo / processo continuerà a essere eseguito, giusto?


Ho scoperto che il nohup di zsh è rotto e non fa quello che vuoi. Disown funziona la maggior parte del tempo. Anche se una volta ho avuto un problema nel tentativo di usare disown con ffmpeg in zsh, quindi ho iniziato una shell bash e non ho funzionato all'interno.
Sridhar Sarnobat,

Risposte:


19

Sì va bene. Il processo figlio riceverà un segnale HUP, ma il processo non morirà grazie al tuo nohup.

Se non vuoi vedere quel messaggio, passa semplicemente l'ID lavoro in questo disownmodo:

disown %1

Oppure, inizia il lavoro con &!(trucco specifico per zsh):

nohup ./my_script.sh &!
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.