Er is niets vervelender dan het uitvoeren van een commando in je terminal en het laten draaien voor minuten, soms uren, en niet in staat zijn om je terminal opnieuw te gebruiken. Zeker, u kunt tabbladen gebruiken, maar dat is een onhandig oplossing, en het is niet altijd optimaal, omdat u misschien wilt zien updates als je werkt. Hier laten we je een paar verschillende manieren zien om bash commando ‘ s op de achtergrond in Linux uit te voeren.,
beëindig een opdracht met &
Als u een opdracht naar de achtergrond wilt pushen, is het gebruik van & aan het einde een eenvoudige manier om dat te doen. Op deze manier kun je een commando op de achtergrond geven en je terminal blijven gebruiken terwijl deze draait. Er zit wel een addertje onder het gras. Het gebruik van & maakt het commando niet los van u; het pusht het gewoon naar de achtergrond., Dit betekent dat als je de terminal probeert te gebruiken, alles wat het commando wil pushen naar STDOUT of STDERR nog steeds afgedrukt zal worden, wat storend kan zijn.
Commando&
wanneer de terminalsessie wordt gesloten, eindigt het commando., U kunt het commando ook uitschakelen door het commando jobs uit te voeren, het nummer van het actieve commando te vinden en het te doden met het commando kill. Die syntaxis is als volgt:
kill %1
het gebruik van &is goed als je iets een beetje moet pushen, maar verwacht niet dat het voor altijd doorgaat.,
& na een opdracht, ontzegt het dan
het uitvoeren van een opdracht met alleen & duwt het naar achteren en laat het draaien zolang het terminalvenster geopend is. Als u dit commando echter constant wilt laten draaien, zelfs als uw terminalsessie eindigt, kunt u het disown commando gebruiken.
om deze methode te gebruiken, moet u beginnen met het toevoegen van een &.,
Commando &
zoals hierboven vermeld, duwt & dit commando naar de achtergrond, maar maakt het niet los van uw gebruiker. U kunt dit verifiëren door jobs in de terminal te typen. Het zal het commando op de achtergrond tonen zoals we eerder zagen.
Typ gewoon disown in de shell, en het zal precies dat doen. (En u kunt dit nogmaals verifiëren met het jobs Commando.,)
nu kunt u uw terminal sluiten en doorgaan met uw dag. Het zal nog steeds dingen doorsluizen naar STDOUT of STDERR, maar zodra u uw terminal afsluit en opnieuw opent, zult u daar niets zien., U kunt het commando opnieuw vinden met de top of ps commando en kill het met de kill Commando.
& na een commando met /dev/null
het toevoegen van & na een commando zal een commando naar de achtergrond pushen, maar als gevolg daarvan zal het background Commando berichten in de terminal blijven afdrukken terwijl u bezig bent Ik gebruik het. Als je dit wilt voorkomen, overweeg dan om het commando om te leiden naar /dev/null.,
COMMANDO &>/dev/null &
betekent Dit niet dat de opdracht afsluiten wanneer de terminal sluit. Echter, zoals hierboven vermeld, is het mogelijk om disown te gebruiken om het draaiende commando van de gebruiker af te wijzen. Je kunt het ook doden in een van de hierboven genoemde methoden als je niet wilt dat het meer wordt uitgevoerd.,
Nohup, met & en /dev/null
In tegenstelling tot de vorige commando ‘ s kunt u met nohup een commando op de achtergrond uitvoeren en laten draaien. Hoe? nohup omzeilt het HUP-signaal (signal hang up), waardoor het mogelijk is om commando ‘ s op de achtergrond uit te voeren, zelfs als de terminal uit Staat. Combineer dit commando met omleiding naar “/dev/null” (om te voorkomen dat nohup een nohup maakt.uit bestand), en alles gaat naar de achtergrond met één commando.,
nohup COMMANDO &>/dev/null &
de Meeste terminal-programma ‘ s op Linux vandaag zijn functies ingebouwd, zodat ze op de achtergrond worden uitgevoerd met weinig inspanning. Samen met dat, moderne init systemen (zoals systemd) kunnen gebruikers programma ‘ s zoals diensten te starten bij het opstarten of wanneer dan ook.,
toch missen sommige programma ‘ s op Linux de mogelijkheid om als daemon te draaien of te integreren met moderne init-systemen. Dit is een echt ongemak, maar is begrijpelijk, omdat niet alle ontwikkelaars de vaardigheid of tijd hebben om nieuwe functies toe te voegen.
gelukkig zijn commando ‘ s als nohup of disown nog steeds een realiteit en kunnen ze het gat dichten in het verplaatsen van programma ‘ s zoals deze naar de achtergrond. Ze zijn niet perfect of mooi, maar ze krijgen de klus geklaard wanneer dat nodig is.,
als je dit Linux-artikel leuk vond, kijk dan eens naar onze andere Linux-inhoud, zoals hoe je je Google-account kunt verbinden met GNOME Shell, 5 van de beste Linux-distributies voor Windows-gebruikers in 2021, en 15 LS-commando ‘ s die je moet weten.
gerelateerd:
John Perkins
John is een jonge technische professional met een passie voor het opleiden van gebruikers over de beste manieren om hun technologie te gebruiken. Hij heeft technische certificeringen over onderwerpen variërend van computerhardware tot cybersecurity tot Linux systeembeheer.,