logo

nohup-kommando i Linux med eksempler

Hver kommando i Linux starter en proces på tidspunktet for dens udførelse, som automatisk bliver afsluttet, når terminalen forlades. Antag, at du udfører programmer over SSH, og hvis forbindelsen falder, vil sessionen blive afsluttet, alle de udførte processer vil stoppe, og du kan stå over for en enorm utilsigtet krise. I sådanne tilfælde kan det være meget nyttigt for brugeren at køre kommandoer i baggrunden, og det er her nohup kommando kommer ind i billedet. nohup (ingen læg på) er en kommando i Linux-systemer, der kører processen selv efter at have logget ud fra shell/terminal.

Nohup kommando

Normalt sendes hver proces i Linux-systemer en SIGHUP (Signal hæng OP) som er ansvarlig for at afslutte processen efter lukning/afslutning af terminalen. Nohup-kommandoen forhindrer processen i at modtage dette signal, når terminalen/skallen lukkes eller forlades. Når et job er startet eller udført ved hjælp af nohup-kommandoen, stdin vil ikke være tilgængelig for brugeren og nohup.ud fil bruges som standardfil til stdout og stderr . Hvis outputtet fra nohup-kommandoen omdirigeres til en anden fil, nohup.ud fil er ikke genereret.



Nohup kommandosyntaks

Syntaksen for at bruge Nohup-kommandoen er ligetil:

css for fed
nohup command [options] &>
  • `command`> : Angiver den kommando eller script, du vil udføre.
  • `[options]`> : Valgfri argumenter eller flag, der ændrer kommandoens adfærd.
  • `&`> : Placer et og-tegn (&) i slutningen af ​​kommandoen, instruerer skallen om at køre kommandoen i baggrunden.

Arbejder med nohup Command

Tjek versionen af ​​Nohup

At tjekke versionen af ​​Nohup er en simpel proces. Du kan typisk kontrollere den version af Nohup, der er installeret på dit system ved at bruge ` --version`> flag. Udfør blot følgende kommando:



nohup --version>

Produktion:

Start af en proces ved hjælp af Nohup

For at starte en proces ved hjælp af Nohup skal du blot sætte den ønskede kommando forannohup>. For eksempel, hvis du ønsker at udføre et bash-script ved navngeekfile.py>ved at bruge Nohup, ville du bruge følgende kommando:



nohup bash geekfile.sh>

Produktion:

java streng trim

For at omdirigere outputtet til output.txt fil:

nohup bash geekfile.sh>output.txt>

Produktion:

java har næste

Start af en proces i baggrunden ved hjælp af Nohup

For at køre kommandoen i baggrunden, skal &' symbolet er tilføjet i slutningen af ​​kommandoen. Efter udførelse vender den ikke tilbage til shell-kommandoprompten efter at have kørt kommandoen i baggrunden. Det kan bringes tilbage i forgrunden med fg kommando.

nohup bash geekfile.sh & fg>

Produktion:

Bemærk: Tallet inden for firkantede parenteser repræsenterer job-id og tallet ved siden af ​​er proces-id .

At køre flere kommandoer i baggrunden

nohup kommando kan bruges til at køre flere kommandoer i baggrunden.

nohup bash -c 'commands'>

Eksempel:

nohup bash -c 'cal && ls'>

Produktion:

Her vil output som standard blive gemt i nohup.ud . For at omdirigere den skal du skrive:

nohup bash -c 'commands'>filnavn.txt>

Eksempel:

nohup bash -c 'cal && ls'>output.txt>

Produktion:

mysql liste over alle brugere

nohup-kommando i Linux – ofte stillede spørgsmål

Hvad er nohup> kommando i Linux, og hvad gør den?

Det nohup> kommando står for ingen læg på. Det giver dig mulighed for at køre en kommando eller et shell-script på en sådan måde, at det fortsætter med at køre, selv efter du logger ud eller lukker terminalen. Dette forhindrer kommandoen i at blive afsluttet, når terminalsessionen slutter.

mysql ændre kolonnetype

Hvordan bruger jeg nohup> kommando?

At bruge nohup> , skal du blot sætte det foran den kommando, du vil køre. For eksempel:

nohup command_to_run &>

Det &> symbol i slutningen sætter kommandoen i baggrunden, så du kan fortsætte med at bruge terminalen, mens kommandoen kører.

Hvor gør nohup> sende output af kommandoen?

Som standard, nohup> omdirigerer både standardoutput (stdout) og standardfejl (stderr) til en fil med navnet nohup.out> i den aktuelle mappe. Du kan angive en anden outputfil, hvis det ønskes.

Kan jeg bruge nohup> med interaktive kommandoer eller programmer?

Mens nohup> bruges typisk med ikke-interaktive kommandoer eller scripts, kan du bruge det med interaktive kommandoer. Men adfærden kan være uforudsigelig, især hvis kommandoen forventer input fra brugeren. Det anbefales generelt at undgå at bruge nohup> med interaktive programmer.

Hvordan kan jeg kontrollere status for en kommando, der kører med nohup> ?

Siden nohup> kører kommandoen i baggrunden, kan du bruge standard Linux-værktøjer som f.eks ps> eller top> for at kontrollere status for processen. For eksempel:

ps aux | grep>

Dette vil vise dig information om processen, inklusive dens PID (Process ID), som du derefter kan bruge til at administrere eller overvåge kommandoen.

Konklusion

I Linux, når du kører en kommando, stopper den normalt, når du lukker terminalen. Men med nohup> , kan du holde den kørende, selv efter du har lukket terminalen. Dette er super praktisk, især hvis du kører kommandoer eksternt og ikke vil have dem til at stoppe, hvis din forbindelse falder.nohup>virker ved at skærme din kommando mod signaler, der normalt ville stoppe den. Du tilføjer barenohup>før din kommando, og den fortsætter. Du kan også sende kommandoens output til en fil. Bare husk, det er bedst til ikke-interaktive opgaver, og du kan kontrollere din kommandos status ved hjælp af værktøjer som f.eks.ps>. Så,nohup>er som et sikkerhedsnet for dine kommandoer, der sikrer, at de bliver ved med at tude, selv når du ikke ser med.