50% korting alle plannen, beperkte tijd. Beginnend om $2.48/mo
Nog 8 minuten
Servers en besturingssystemen

Hoe nohup Command werkt in Linux - Syntaxis, gebruiksscenario's en voorbeelden

Ada Lovegood By Ada Lovegood 8 minuten lezen Bijgewerkt op 14 juli 2024
nohup-opdracht

Als u een Linux-ontwikkelaar bent, kent u het belang van consistentie en betrouwbaarheid van uw sessies. Langdurige processen in Linux moeten doorgaan, zelfs nadat u zich hebt afgemeld bij een sessie. Gelukkig heeft Linux hiervoor een functioneel commando. De nohup-opdracht Hiermee kunt u opdrachten ononderbroken op de achtergrond laten draaien. Zo voorkomt u gegevensverlies en bespaart u kostbare tijd. Deze gids leidt je door alles wat je moet weten over de Linux nohup-opdracht, van de syntaxis en opties tot praktische voorbeelden en het oplossen van veelvoorkomende fouten.

Linux nohup-syntaxis begrijpen

De nohup-opdracht is eenvoudig te gebruiken en duidelijk. Hiermee kunt u opdrachten of scripts op de achtergrond uitvoeren, zodat u er zeker van bent dat ze blijven worden uitgevoerd, zelfs nadat u zich hebt afgemeld bij de terminal. Hier ziet u hoe u het kunt gebruiken:

nohup [command] [arguments] &

Je zou moeten vervangen [commando] met de opdracht of het script dat u wilt uitvoeren. En [argument] zijn alle argumenten of opties die vereist zijn voor de opdracht. De & symbool verzendt de opdracht om op de achtergrond uit te voeren. Laten we een voorbeeld bekijken:

nohup myscript.sh &

In dit voorbeeld myscript.sh is een bash-script dat blijft draaien, zelfs als je de terminal sluit. De uitvoer wordt omgeleid naar een bestand met de naam nohup.out standaard tenzij u een ander pad opgeeft.

Nohup-opties verkennen

Hoewel het nohup-commando zelf niet veel opties heeft, kan het begrijpen hoe je het effectief kunt gebruiken met verschillende commando's en omleidingstechnieken de prestaties ervan verbeteren. Laten we eerst eens kijken hoe we informatie kunnen krijgen over de nohup-opdracht:

nohup –-help 
nohup --version

Deze twee opdrachten geven u nuttige informatie door het helpbericht en de versie van nohup weer te geven.

Een proces uitvoeren met het nohup-commando

Als je een proces wilt uitvoeren met de opdracht nohup, kun je dezelfde structuur volgen die ik in de vorige sectie heb uitgelegd:

nohup [command]

Als u een proces op de achtergrond wilt uitvoeren, hoeft u alleen maar toe te voegen & tot het einde van uw opdracht.

Meerdere processen op de achtergrond uitvoeren met de nohup-opdracht

Wat als u nu meer dan één proces op de achtergrond wilt uitvoeren met de opdracht nohup?

nohup bash -c '[command A] && [command B]' &

Vervangen [opdracht A] En [opdracht B] met de opdrachten die u op de achtergrond wilt uitvoeren. Stel je voor dat je eerst je systeempakketten wilt bijwerken en vervolgens onnodige bestanden wilt opruimen en dat je dit wilt doen met de opdracht nohup:

nohup bash -c 'sudo apt-get update && sudo apt-get autoremove -y' &

In dit voorbeeld neeh zorgt ervoor dat zowel de update- als de opschoonprocessen op de achtergrond kunnen blijven draaien. Uw systeemonderhoudstaken worden dus voltooid zonder dat u de terminal open hoeft te houden.

De aangepaste uitvoer omleiden

De uitvoer van dit proces wordt doorgestuurd naar nohup.out standaard. Maar wat als u de uitvoer via een ander pad wilt ontvangen? Hier leest u hoe u dat kunt doen:

nohup [command] > [/path/to/new/output.txt]

Vergeet niet om de waarden in te vervangen [] met uw gewenste opdracht en bestandspad.

Nohup combineren met andere opdrachten

nohup kan worden gecombineerd met andere commando's en pijpen om krachtige commandoketens te creëren. Laten we hier een voorbeeld van zien:

nohup find / -name "*.log" | xargs grep "ERROR" > error_logs.txt 2>&1 &

Hier, de vinden commando wordt gebruikt om te zoeken naar logbestanden en grep wordt gebruikt om te zoeken naar de term “ERROR”. De gecombineerde uitvoer wordt omgeleid naar error_logs.txt.

In deze sectie hebben we de meest voorkomende opties en gebruiksscenario's van de opdracht nohup besproken. Door deze instructies onder de knie te krijgen, kunt u nohup effectief gebruiken voor het uitvoeren van Linux-processen op de achtergrond.

Veelvoorkomende fouten en probleemoplossing

Het gebruik van de opdracht nohup is over het algemeen eenvoudig, maar tijdens het proces kunt u enkele veelvoorkomende fouten tegenkomen. Als u deze fouten begrijpt en weet hoe u ze kunt oplossen, kunt u tijd en frustratie besparen. Laten we dus eens kijken wat deze veelvoorkomende fouten zijn en hoe u er doorheen kunt navigeren:

Toestemming geweigerd

Deze fout treedt op wanneer het script of de opdracht die u probeert uit te voeren niet over de uitvoeringsmachtiging beschikt. De uitvoer van de fout ziet er als volgt uit: nohup: kan opdracht ‘myscript.sh’ niet uitvoeren: toestemming geweigerd

Om dit probleem op te lossen, moet u ervoor zorgen dat het script of de opdracht over de juiste machtigingen beschikt. U kunt uitvoerrechten toevoegen met behulp van de chmod commando:

chmod +x myscript.sh 
nohup ./myscript.sh &

Commando niet gevonden

Deze fout treedt op als de opdracht of het script niet op de opgegeven locatie wordt gevonden of niet beschikbaar is in uw PATH. De uitvoer van de fout ziet er als volgt uit: nohup: kon de opdracht ‘myscript.sh’ niet uitvoeren: een dergelijk bestand of map bestaat niet

Om deze fout op te lossen, moet u controleren of de opdracht of het script bestaat en zich in de juiste map bevindt. Mogelijk moet u het absolute pad naar het script opgeven:

nohup /path/to/myscript.sh &

Zorg er ook voor dat de opdracht is geïnstalleerd en beschikbaar is in uw PATH.

Geen uitvoer

Soms merkt u misschien dat er geen uitvoer in de terminal of in het uitvoerbestand staat. Als de opdracht uitvoer produceert, maar u deze niet ziet, wordt deze mogelijk omgeleid naar een ander pad dan het standaardbestand of is er mogelijk een probleem met de bestandsrechten. Om dit probleem te verhelpen, moet u het uitvoerbestand expliciet opgeven om ervoor te zorgen dat het correct wordt omgeleid:

nohup myscript.sh > output.log 2>&1 &

Deze opdracht leidt bijvoorbeeld zowel de standaarduitvoer als de standaardfout om naar een bestand met de naam output.log.

Script wordt niet uitgevoerd op de achtergrond

Soms lijkt het alsof uw script of opdracht actief is, maar niet op de achtergrond. De reden is meestal eenvoudig. Mogelijk bent u vergeten de & symbool aan het einde van de opdracht om deze op de achtergrond uit te voeren. De oplossing is ook eenvoudig: zorg ervoor dat je dat hebt toegevoegd en je bent klaar om te gaan.

Vastlopend of niet-reagerend proces

Een proces dat met nohup is gestart, kan vastlopen of niet meer reageren. Dit kan gebeuren als het proces op invoer wacht of als er problemen zijn met de bronnen waartoe het toegang probeert te krijgen. Er zijn twee oplossingen voor dit probleem:

  • Controleer op vereiste invoer: Zorg ervoor dat de opdracht geen interactieve invoer vereist.
  • Bronproblemen: Controleer of de opdracht toegang heeft tot de benodigde bronnen (bijvoorbeeld bestanden, netwerk).

Nohup.out overschrijven

Als u meerdere processen op de achtergrond uitvoert met de opdracht nohup, kunt u onbedoeld de nohup.out bestand. Om dit probleem te voorkomen, kunt u voor elk proces een specifiek pad kiezen. Op deze manier heeft elk proces zijn unieke uitvoerbestand en wordt het standaardpad niet overschreven.

Door meer te weten te komen over de veel voorkomende nohup-fout en hun oplossingen, kunt u de opdracht nohup zonder problemen gebruiken.

Conclusie

De opdracht nohup is een geweldig hulpmiddel voor elke Linux-gebruiker die processen op de achtergrond moet uitvoeren, omdat het ervoor zorgt dat uw processen blijven draaien, zelfs nadat u bent uitgelogd. In deze handleiding hebben we de basissyntaxis besproken, verschillende opties onderzocht en veelvoorkomende fouten besproken, samen met tips voor het oplossen van problemen. Door de opdracht nohup onder de knie te krijgen, kunt u langlopende taken efficiënt beheren, waardoor uw productiviteit en systeembeheervaardigheden toenemen.

Als je een Linux-ontwikkelaar bent die je Linux-ervaring wil maximaliseren, overweeg dan om te upgraden naar een betrouwbaar Linux-VPS. Onze cloudgebaseerde VPS-dienst biedt 24/7 ondersteuning en een uptime-garantie van 99,95%, waardoor uw applicaties altijd soepel draaien en u op elk moment van de dag hulp kunt krijgen. Met een robuuste infrastructuur en betrouwbare bronnen is onze VPS ontworpen om te voldoen aan de eisen van Linux-programmeurs. Bovendien kunt u uw favoriete Linux-distributie vooraf laten installeren, waardoor de installatie snel en eenvoudig verloopt. Breng uw Linux-projecten naar een hoger niveau met een VPS die de kracht en flexibiliteit biedt die u nodig heeft.

Veelgestelde vragen

Wat is het verschil tussen neeh En &?

neeh voorkomt dat een proces wordt beëindigd wanneer de gebruiker zich afmeldt, terwijl & voert een proces op de achtergrond uit. Gebruiken neeh zorgt ervoor dat het proces doorgaat na het uitloggen en het combineren ervan met & zorgt ervoor dat het op de achtergrond kan draaien.

Waarom wordt nohup gebruikt?

neeh wordt gebruikt om ervoor te zorgen dat een opdracht of script blijft werken, zelfs nadat de gebruiker zich heeft afgemeld of de terminal is gesloten. Het is essentieel voor langlopende processen die actief moeten blijven zonder tussenkomst van de gebruiker.

Wat is een nohup out-bestand?

De nohup.out bestand is het standaarduitvoerbestand waarin nohup de standaarduitvoer en standaardfout van een opdracht omleidt. Als er geen ander uitvoerbestand is opgegeven, wordt de uitvoer van de opdracht opgeslagen in nohup.out in de huidige map.

Deel

Meer van de blog

Blijf lezen.

De beste zelfgehoste apps die u kunt uitvoeren met Cosmos Cloud-omslagafbeelding met app-panelen rond een Cosmos-dashboard.
Servers en besturingssystemen

Beste zelfgehoste apps die u kunt uitvoeren met Cosmos Cloud: bestanden, media, wachtwoorden, automatisering en meer!

Misschien heb je Cosmos Cloud opgezet en wil je nu kijken welke apps er goed bij passen, of misschien heb je nog niet eens voor Cosmos gekozen en wil je gewoon kijken hoe goed het bij je werk past.

Niek ZilverNiek Zilver 16 minuten lezen
Potainer vs Cosmos Cloud voor het beheren van Docker Apps-omslag met hybride installatiediagram en neon-ops versus toegangsblokken.
Servers en besturingssystemen

Portainer versus Cosmos Cloud: het beste geschikt voor Docker-appbeheer

Als je Docker al kent en gewoon een schonere manier wilt om een ​​groeiende app-stack uit te voeren, dan is hier het korte antwoord op Potainer versus Cosmos Cloud. Potainer is de sterkere keuze voor direc

Niek ZilverNiek Zilver 14 minuten lezen
Cosmos Cloud vs CasaOS vs Umbrel functieafbeelding die drie zelf-gehoste paden binnen één abstracte cloudnetwerkwereld laat zien.
Servers en besturingssystemen

Cosmos Cloud versus CasaOS versus Umbrel: welk zelfgehoste platform past bij uw configuratie?

Het korte antwoord is dat CasaOS nog steeds de gemakkelijkste plek is om te beginnen, Umbrel het schoonste samengestelde gevoel heeft en Cosmos Cloud logischer is als je meer controle over doma wilt.

Niek ZilverNiek Zilver 11 minuten lezen

Klaar om te implementeren? Vanaf $ 2,48/maand.

Onafhankelijke cloud, sinds 2008. AMD EPYC, NVMe, 40 Gbps. 14 dagen geld-terug-garantie.