2012-12-03 10 views
74

Ho un comando che carica i file usando git su un server remoto dalla shell di Linux e ci vorranno molte ore per finire.Come posso inserire il processo corrente di Linux in esecuzione in background?

Come posso mettere quel programma in esecuzione in background? Quindi posso ancora lavorare sulla shell e anche questo processo viene completato?

+0

Solo un'ipotesi, ma hai provato ctrl + z o eseguendo il comando in questo modo; #command & – EralpB

+0

Il comando è già in esecuzione quindi non ho altra opzione. Non sono sicuro di quale comando provare. non volevo interrompere il processo attuale quindi non l'ho sperimentato – user825904

+0

Dovremmo aspettare una risposta più professionale allora :) Intendevo se avessi la possibilità di ricominciare tutto da capo. (Il comando & cosa) – EralpB

risposta

139

CTRL + Z quindi utilizzare il comando bg per mettere il processo in background.

EDIT

Per avviare un processo in cui si può anche uccidere il terminale e porta ancora a correre

nohup [command] [-args] > [filename] 2>&1 & 

esempio

nohup /home/edheal/myprog -arg1 -arg2 > /home/edheal/output.txt 2>&1 & 

Per ignorare semplicemente l'uscita (non molto saggio) cambiare il nome del file per /dev/null

Per ottenere il messaggio di errore impostato su un file diverso cambiare il &1 ad un nome di file.

+0

l'ho provato, ma come output qualcosa, viene di nuovo in primo piano con% che mostra quanti dati sono stati caricati – user825904

+0

Il processo scriverà qualsiasi output sul terminale come indicato dal processo per farlo all'inizio. Dovrai riavviarlo per ottenere l'output per scrivere su file o '/ dev/null'. Vedi modifica sopra. –

+0

quindi significa che se il processo è già avviato, non è possibile reindirizzare l'output – user825904

Problemi correlati