Der er mange kommandoer til rådighed på Linux-systemer. Der er nogle, som du vil bruge flere gange om dagen, og der er andre, der generelt er forbeholdt særlige tilfælde. Nohup er en sådan kommando. Du vil ikke bruge det hver dag, men du vil være taknemmelig, det er rundt, når du har brug for det.

Hvad er Nohup?

Nohup er kort for "No Hangups." Det er ikke en kommando, du løber af sig selv. Nohup er en supplerende kommando, der fortæller Linux-systemet ikke at stoppe en anden kommando, når den er startet. Det betyder, at det fortsætter med at løbe, indtil det er færdigt, selvom den bruger, der startede den logger ud. Syntaxen for nohup er enkel og ser sådan ud:

 nohup sh your-script.sh & 

Bemærk "&" i slutningen af ​​kommandoen. Det bevæger kommandoen til baggrunden og frigiver den terminal, du arbejder i.

Nohup fungerer med næsten enhver kommando, du kører i terminalen. Det kan køres med brugerdefinerede scripts samt standard systemkommandoer og kommandolinjeværktøjer.

Nohup.out

Fordi nohup kan fortsætte uafhængigt af den bruger, der startede det, behøver kommandoen et sted at udføre eventuelle meddelelser eller fejl. Da der ikke er en terminal at forbinde med det, logger nohup alt til en outputfil, nohup.out.

Som standard er den fil placeret i hvilken mappe du startede kommandoen i. Nohup.out er noget unikt, fordi den indeholder både standard output og fejl output sammen. Nohup omdirigerer begge til samme fil som standard.

Du behøver ikke nødvendigvis at bruge nohup.out. Det er bare standard. Du kan angive en brugerdefineret output, når du kører nohup og placerer den på en brugerdefineret placering.

 nohup sh your-script.sh> /path/to/custom.out & 

Den brugerdefinerede output indeholder nøjagtigt de samme data som standard-filen nohup.out ville.

Forskelle med Daemoner

På dette tidspunkt spekulerer du sikkert på, hvad der sætter nohup bortset fra en demoniseret proces. Efter alt synes de begge at tjene det relativt samme formål, men det gør det ikke rigtig. Daemoner kører løbende i baggrunden. De er bedst forbeholdt processer, som du aldrig vil afslutte, som servere. De kræver mere arbejde at programmere også, så de er ikke bedst for enkle engangsskripter.

Nohup er til engangsbrug. Tænk på et script, der vil vare lang tid at løbe, men vil i sidste ende ende. Måske er der en lang og kompliceret opgave, du kører nu og da tager det timer at fuldføre. Du ønsker ikke at forlade en terminal eller en bruger, der er logget ind, så du bruger nohup for at holde det kørende i baggrunden. Som en ekstra bonus logger den automatisk automatisk til dig.

Du kan se, at nohup ikke er et dagligdags værktøj, men det kan være meget nyttigt for den rigtige opgave. Det falder et sted mellem et normalt kort script og en løbende løbende dæmon. Det hjælper dig med at tage mere af en håndfri tilgang til længere scripts, som du måske regelmæssigt har spildt tid på barnevagt.