det finns inget mer irriterande än att köra ett kommando i din terminal och få det att springa i minuter, ibland timmar och inte kunna använda din terminal igen. Visst kan du använda flikar, men det är en klumpig lösning, och det är inte alltid optimalt eftersom du kanske vill se uppdateringar när du arbetar. Här visar vi dig några olika sätt att köra bash-kommandon i bakgrunden i Linux.,
avsluta ett kommando med&
Om du vill trycka ett kommando i bakgrunden, med&
I slutet är ett enkelt sätt att göra det. På så sätt kan du utfärda ett kommando i bakgrunden och fortsätta använda din terminal när den körs. Det kommer med en hake, dock. Att använda&
kopplar inte bort kommandot från dig; det trycker bara in det i bakgrunden., Det betyder att när du försöker använda terminalen, kommer allt som kommandot vill trycka på STDOUT
eller STDERR
fortfarande att skrivas ut, vilket kan vara störande.
kommandot &
När terminalsessionen är stängd avslutas kommandot., Du kan också döda kommandot genom att utfärda kommandot jobs
, hitta numret på kommandot som körs och döda det med kommandot kill
. Den syntaxen är som följer:
döda %1
använda &
är bra om du behöver trycka på något för lite men förvänta dig inte att det ska fortsätta för alltid.,
& efter ett kommando avmarkerar du det
kör ett kommando med bara &
trycker av det till baksidan och håller det igång så länge terminalfönstret är öppet. Om du dock vill hålla kommandot i konstant, även om terminalsessionen slutar, kan du använda kommandotdisown
.
för att använda den här metoden, börja med att lägga till en&
.,
COMMAND&
som nämnts ovan, använder&
detta kommando i bakgrunden men tar inte bort det från användaren. Du kan verifiera detta genom att skriva jobs
I terminalen. Det kommer att visa kommandot som körs i bakgrunden som vi såg tidigare.
skriv bara disown
I skalet, och det kommer att göra just det. (Och du kan återigen verifiera detta med kommandot jobs
.,div>
Nu kan du Stäng din terminal och fortsätt om din dag. Det kommer fortfarande att hålla rörledningar saker till STDOUT
eller STDERR
, men när du avslutar och öppnar din terminal igen ser du ingenting där., Du kan hitta kommandot igen med kommandona top
eller ps
och döda det med kommandot kill
.
& efter ett kommando med /dev/null
lägga till&
efter ett kommando kommer att driva ett kommando i bakgrunden, men som ett resultat kommer bakgrundskommandot att fortsätta att skriva ut meddelanden i terminalen som du använder det. Om du vill förhindra detta, överväg att omdirigera kommandot till /dev/null
.,
kommandot &>/dev/null &
detta hindrar inte att kommandot stängs när terminalen stängs. Som nämnts ovan är det dock möjligt att användadisown
för att inaktivera kommandot som körs bort från användaren. Du kan också döda den i någon av de metoder som nämns ovan om du inte vill att den ska köras längre.,
Nohup, med & och/dev/null
Till skillnad från tidigare kommandon, med nohup
kan du köra ett kommando i bakgrunden och hålla det igång. Hur? nohup
kringgår HUP-signalen (signalen hänger upp), vilket gör det möjligt att köra kommandon i bakgrunden även när terminalen är avstängd. Kombinera det här kommandot med omdirigering till ”/ dev / null ” (för att förhindra nohup från att göra en nohup.och allt går till bakgrunden med ett kommando.,
nohup COMMAND&>/dev/null&
de flesta terminalprogram på Linux har idag funktioner inbyggda så att de kan köras i bakgrunden med liten ansträngning. Tillsammans med det kan moderna init-system (som systemd) tillåta användare att starta program som tjänster vid start eller när som helst.,
vissa program på Linux saknar fortfarande möjligheten att köra som en demon eller integrera med moderna init-system. Detta är en verklig olägenhet men är förståeligt, eftersom inte alla utvecklare har skicklighet eller tid att lägga till nya funktioner.
lyckligtvis är kommandon som nohup
eller disown
fortfarande en verklighet och kan stänga gapet i rörliga program som detta till bakgrunden. De är inte perfekta eller snygga, men de får jobbet gjort när det behövs.,
om du gillade den här Linux-artikeln, se till att kolla in några av våra andra Linux-innehåll, som hur du ansluter ditt Google-konto till GNOME Shell, 5 av de bästa Linux-distributionerna för Windows-användare i 2021 och 15 ls-kommandon du behöver veta.
relaterat:
John är en ung teknisk professionell med en passion för att utbilda användare på bästa sätt att använda sin teknik. Han har tekniska certifieringar som täcker ämnen som sträcker sig från datorhårdvara till cybersäkerhet till Linux systemadministration.,
få våra berättelser levererade till din inkorg.