Android

Linux nohup kommando

Linux Kommandos Teil 5 - Useradd, Usermod, Userdel

Linux Kommandos Teil 5 - Useradd, Usermod, Userdel

Indholdsfortegnelse:

Anonim

nohup kommandoen udfører et andet program, der er specificeret som dets argument, og ignorerer alle SIGHUP (hangup) signaler. SIGHUP er et signal, der sendes til en proces, når dens kontrolterminal er lukket.

Normalt, når du kører et program over SSH, hvis din forbindelse falder, eller du logger ud, afsluttes sessionen, og alle processer, der udføres fra terminalen, stopper. Det er her nohup kommandoen er praktisk. Det ignorerer alle hangup-signaler, og processen vil fortsætte med at køre.

Sådan bruges nohup-kommandoen

Syntaks for nohup kommandoen er som følger:

nohup COMMAND

Kommandoen accepterer ikke andre valgmuligheder undtagen standard --help og --version .

Lad os se på følgende eksempel:

nohup mycommand

nohup: ignoring input and appending output to 'nohup.out'

nohup kører mycommand kommandoen i forgrunden og omdirigerer kommandoudgangen til filen nohup.out . Denne fil oprettes i det aktuelle arbejdsmappe. Hvis brugeren, der kører kommandoen, ikke har skrivetilladelser til arbejdsmappen, oprettes filen i brugerens hjemmekatalog.

Hvis du logger ud eller lukker terminalen, afsluttes processen ikke.

Kør kommandoen i baggrunden

Brug af nohup i forgrunden er ikke meget nyttigt, fordi du ikke vil være i stand til at interagere med shell, før kommandoen er afsluttet.

Hvis du vil køre kommandoen i baggrunden, tilføjes & symbolet i slutningen af ​​kommandoen:

nohup mycommand &

Outputet inkluderer shell job-ID (omgivet af parenteser) og proces-id:

25177

Du kan bruge job-ID til at bringe kommandoen i forgrunden ved hjælp af kommandoen fg .

Hvis du af en eller anden grund ønsker at afslutte processen, skal du bruge kill kommandoen efterfulgt af process-ID:

kill -9 25132

Omdirigerer output til en fil

Som standard omdirigerer nohup kommandoudgangen til filen nohup.out . Hvis du vil omdirigere output til en anden fil, skal du bruge standard shell omdirigering.

For at omdirigere standardoutput og standardfejl til mycommand.out , ville du f.eks. Bruge:

nohup mycommand > mycommand.out 2>&1 &

Sådan omdirigerer du standardoutput og standardfejl til forskellige filer:

nohup mycommand > mycommand.out 2> mycommand.err &

Alternativer

Der er flere alternative programmer, som du kan bruge til at undgå, at en kommando afsluttes, når du lukker terminalen eller bliver afbrudt.

skærm

Skærm- eller GNU-skærm er et terminalmultiplexerprogram, der giver dig mulighed for at starte en skærmsession og åbne et vilkårligt antal windows (virtuelle terminaler) inde i denne session. Processer, der kører i skærmen, fortsætter med at køre, når deres vindue ikke er synligt, selvom du bliver afbrudt.

tmux

Tmux er et moderne alternativ til GNU-skærmen. Med Tmux kan du også oprette en session og åbne flere vinduer inde i denne session. Tmux-sessioner er vedvarende, hvilket betyder, at programmer, der kører i Tmux, fortsætter med at køre, selvom du lukker terminalen.

fornægte

disown er et shell, der er indbygget, der fjerner et shell-job fra skallets jobkontrol. I modsætning til nohup , kan du også bruge disown ved kørende processer.

Konklusion

nohup giver dig mulighed for at forhindre, at kommandoer afsluttes, når du logger ud eller forlader terminalen.

nohup terminal