Processo in esecuzione in background con nohup

on December 22, 2008 da Sukrit Dhandhania il 22 dicembre 2008

Linux

I lavori su server remoti molto. Utilizzare SSH per connettersi al mio server. Molto spesso mi capita di eseguire un processo che ho bisogno di far funzionare anche dopo aver stretto la mia connessione SSH. Questo potrebbe essere uno script di shell che analizza attraverso il mio file di log o molto grandi database mysql restauro. Che quando mi rivolgo ad un programma di utilità della riga di comando di Linux chiamata "nohup". "Nohup" è l'abbreviazione di "no hangup", che si traduce in "ignorare il segnale di riagganciare". Il "appendere" il segnale è quello che succede quando si log out. Che cosa "nohup" non è che ti permette di accedere al tuo server, avviare un processo ed esce. Il processo continua a funzionare anche dopo che vi sarete scollegati. Quando si accede di nuovo che si può accedere di nuovo il processo, a condizione che i suoi ancora in esecuzione.

La sintassi di base di "nohup" è il seguente:

# Nohup [comando] &

Sostituire "[comando]" con il nome del vostro script di shell o un comando. La "&" alla fine rende il comando o lo script eseguito come processo in background. Ecco un esempio di come si usa "nohup" a prendere una copia di backup di un grande database mysql sul server remoto. In primo luogo, l'accesso al mio server remoto usando SSH:

# Ssh calvin@sevenacross.com

Poi eseguire il comando "mysqldump-ucalvin-phobbes largedatabase> largedatabase.db" nel "nohup" modalità con l'aggiunta di un "nohup" prima e "e" dopo il comando:

# Nohup mysqldump-ucalvin-phobbes largedatabase> largedatabase.db &
[1] 3999
# Nohup: aggiungendo l'output a `nohup.out '

Ci sono due linee di produzione che si ottiene. Il "3999" in prima linea è l'ID processo del processo che ho appena generato, mentre la "nohup: aggiungendo l'output a` nohup.out ' "significa che la messa fuori che di solito provengono al terminale viene trasmessa in un file chiamato "nohup.out" nella directory da cui si ha lanciato il comando. È possibile verificare se il processo è ancora in esecuzione, cercando in tutti i processi in esecuzione usando l'ID del processo:

# Ps-ef | grep 3999
Calvin 3999 29848 0 18:42? 00:00:00 / usr / bin / mysqldump
Calvin 6575 31852 0 18:44 pts / 2 00:00:00 grep 3999

Quando il processo è svolto in esecuzione verrà visualizzato un output in linea di comando come questo:

[1] + Done nohup mysqldump-ucalvin-phobbes largedatabase> largedatabase.db

È possibile controllare il file "nohup.out" per controllare la presenza di errori o di altri messaggi che sono stati di uscita, mentre il processo è in esecuzione. Se il file rimane vuoto che bene. Essa significa che non sono stati i messaggi in uscita, mentre il processo è in esecuzione.

Related Interventi:
  • Come ottenere informazioni dettagliate su ogni processo in esecuzione in Windows
  • Come usare dstat per monitorare il vostro server Linux / Unix
  • Come usare uno screensaver come sfondo del desktop di OS X
  • Come ripristinare uno perso la password di root di MySQL
  • Come blurminal tuo OS X terminal
  • Ottieni Aiuto tutorial semplice come questo nella tua casella di posta tutti i giorni - gratuitamente! Basta inserire il tuo indirizzo email qui sotto:

    Si può sempre scegliere di questa e-mail di iscrizione in qualsiasi momento.


    Favoriti e Condividi

    1 comment… read it below or (1 comment ... leggere qui di seguito o aggiungere uno )

    1 Bobby Cox 12.22.08 a 8:44 am

    Ciao - nohup è utile, ma se si utilizza schermo si può staccare e riattaccare a un terminale a volontà e comandi sono in esecuzione in background come bene.

    http://www.gnu.org/software/screen/

    --
    Bobby

    Lascia un tuo commento

    È possibile utilizzare questi tag HTML e attributi: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>