Skip to content Gå til innhold


Running process in the background with Nohup Prosess i bakgrunnen med nohup

Linux

I work on remote servers a lot. Jeg jobber på eksterne servere mye. I use SSH to connect to my servers. Jeg bruker SSH til å koble til mine servere. Quite often I run a process that I need to let run even after I close my SSH connection. Ganske ofte jeg kjøre en prosess som jeg må la løpe selv etter at jeg lukker SSH forbindelse. This could be a shell script that parses through my log files or very large mysql database restoration. Dette kan være et skall skript som analyserer gjennom mine loggfiler eller svært stor mysql database restaurering. That's when I turn to a Linux command line utility called “nohup”. Det var da jeg ty til en Linux kommandolinje verktøy kalt "nohup". “Nohup” is short for “no hangup”, which translates to “ignore the hang up signal”. "Nohup" er forkortelse for "ingen Legg på", som oversettes til "ignorere henge opp signal". The “hang up” signal is what happens when you log out. Den "henge opp" signalet er hva som skjer når du logger deg ut. What “nohup” does is that it allows you to log into your server, launch a process and log out. Hva "nohup" gjør er at det tillater deg å logge på serveren din, starte en prosess og logge ut. The process keeps running even after you have logged out. Prosessen fortsetter å kjøre selv etter at du har logget ut. When you log in again you can access that process again, provided its still running. Når du logger på igjen, kan du få tilgang til denne prosessen igjen, såfremt det fremdeles.

The basic syntax of “nohup” is: Den grunnleggende syntaks av "nohup" er:

# nohup [command] & # Nohup [command] &

Replace “[command]” with the name of your shell script, or a command. Erstatt "[command]" med navnet på shell script, eller en kommando. The “&” at the end makes the command or script run as a background process. The "&" på slutten gjør kommandoen eller skriptet som bakgrunn prosess. Here's an example of how you would use “nohup” to take a backup of a large mysql database on your remote server. Her er et eksempel på hvordan du ville bruke "nohup" å ta en sikkerhetskopi av en stor MySQL databasen på ekstern server. First, I log in to my remote server using SSH: Først logger jeg meg på min eksterne serveren ved hjelp av SSH:

# ssh calvin@sevenacross.com # Ssh calvin@sevenacross.com

Then I execute the command “mysqldump -ucalvin -phobbes largedatabase > largedatabase.db” in the “nohup” mode by adding a “nohup” before and “&” after the command: Så jeg kjøre kommandoen "mysqldump-ucalvin-phobbes largedatabase> largedatabase.db" i "nohup" modus ved å legge en "nohup" før og "&" etter kommandoen:

# nohup mysqldump -ucalvin -phobbes largedatabase > largedatabase.db & # Nohup mysqldump-ucalvin-phobbes largedatabase> largedatabase.db &
[1] 3999 [1] 3999
# nohup: appending output to `nohup.out' # Nohup: legge produksjonen til `nohup.out '

There are two lines of output that you get. Det er to linjer på produksjonen som du får. The “3999″ in the first line is the process ID of the process that I just spawned, while the “nohup: appending output to `nohup.out'” means that the out put that would usually come to the terminal is being forwarded into a file called “nohup.out” in the directory from which you launched the command. Den "3999" i første linje er prosessen ID i prosessen at jeg bare spawned, mens "nohup: legge produksjonen til` nohup.out "betyr at ut putte det vil vanligvis komme til terminalen blir videresendt til en fil kalt "nohup.out" i katalogen som du lanserte kommandoen. You can check if the process is still running by searching through all the running processes using the process ID: Du kan sjekke om prosessen er fremdeles i gang ved å søke gjennom alle prosesser som kjøres ved hjelp av prosessen ID:

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

When the process is done running you will see an output in the command line like this: Når prosessen er ferdig kjører du vil se en utgang i kommandolinjen slik:

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

You can check the file “nohup.out” to check for any errors or other messages that were output while the process was running. Du kan sjekke filen "nohup.out" for å sjekke for eventuelle feil eller andre meldinger som ble produksjonen mens prosessen var i gang. If the file remains blank that's okay. Hvis filen fortsatt er blank som er ok. It means no messages were output while the process was running. Det betyr ingen meldinger ble utgang mens prosessen var i gang.

Posted in Posted in Linux Linux . .

Related Posts: Relaterte innlegg:

How to use dstat to monitor your Linux/UNIX server Slik bruker dstat å overvåke Linux / UNIX server
How to get detailed information on each running process in Windows Hvordan få detaljert informasjon om hver prosess i Windows
How to use a screensaver as your desktop background in OS X Hvordan bruke en skjermsparer som skrivebordsbakgrunn bakgrunn i OS X
How to reset a lost MySQL root password Hvor å restarte en tapt MySQL rot passord
How to blurminal your OS X Terminal Slik blurminal din OS X Terminal

4 Responses 4 Svar

Stay in touch with the conversation, subscribe to the Holde kontakten med samtalen, abonnere på RSS feed for comments on this post RSS feed for kommentarer til dette innlegget . .

  1. Bobby Cox says Bobby Cox sier

    Hello – Nohup is useful, but if you use screen you can detach and reattach to a terminal at will and have commands running in the background as well. Hei - nohup er nyttig, men hvis du bruker skjermen kan du løsne og feste til en terminal på vilje og har kommandoer som kjører i bakgrunnen også.

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

    --
    Bobby Bobby

  2. it guy det fyr says sier

    I recently used the 'nohup' command as sugested for an instance of tshark I wanted to run for a long time. Jeg har nylig brukt 'nohup' kommando som sugested for en forekomst av tshark jeg ønsket å kjøre i lang tid.

    Nohup worked great. Nohup arbeidet stor. Thanks guys. Takk fyrene.

  3. Parikshit says Parikshit sier

    I am running a PERL script in background using nohup command. Jeg kjører en PERL skript i bakgrunnen ved hjelp nohup kommando. this script prints logs on the screen. Dette skriptet skriver ut logger på skjermen. Though i used & to run it in background it still prints the logs on the console . Selv om jeg pleide og å kjøre den i bakgrunnen den fortsatt skrives ut loggene på konsollen. How can it be actually run in background so that it shouldn't print anything on the screen . Hvordan kan det være egentlig kjøre i bakgrunnen, slik at det ikke skal skrive noe på skjermen.

  4. Jim says Jim sier

    redirect error output to the same file maybe? omdirigere feil utgang til den samme filen kanskje?

    nohup mysqldump -ucalvin -phobbes largedatabase >largedatabase.db 2>&1 & nohup mysqldump-ucalvin-phobbes largedatabase> largedatabase.db 2> & 1 &



Some HTML is OK Some HTML is OK

or, reply to this post via eller svare på dette innlegget via trackback styrekule . .