För systemadministratörer som ansvarar för kontrollen av Linux-servrar är resurshantering en viktig uppgift att ta hand om. Ibland tar Linux-kommandon upp en stor del av systemresurser och måste stoppas.

Lyckligtvis kan du begränsa körtiden för dina kommandon med hjälp av verktyg som tidsgräns. I den här artikeln kommer vi att diskutera varför du bör lägga till tidsgränser för dina kommandon och hur du lägger till en tidsbegränsning med kommandon som tidsbegränsning och timeout.

Varför begränsa ett kommandos körtid?

Det finns flera anledningar till varför du kan behöva köra dina kommandon med en tidsgräns. För det första kanske du kör en äldre dator eller en server och inte vill att ditt system ska slösa bort sina resurser i oönskad bearbetning.

För det andra avslutas tidsbundna uppgifter som filöverföringar efter en viss period, men deras processer slutar inte omedelbart. För att begränsa programmet från att ta ytterligare CPU-tid och minne kan du lägga till en gräns som stoppar processen när överföringen är klar.

instagram viewer

Lägg till gräns med hjälp av timeout-kommandot

Timeout-kommandot är det första valet för många Linux-användare att lägga till en tidsbegränsning i sina kommandon. Eftersom detta verktyg är en del av GNU Core Utilities paketet kommer det förinstallerat på nästan alla Linux-distributioner.

Den grundläggande syntaxen för timeout-kommandot är:

kommando för tidsgräns

...var begränsa är den tid som kommandot ska köras för och kommando är Linux-kommandot som du vill utföra med en tidsgräns.

Till exempel om du vill få processinformation med hjälp av topp kommando i 10 sekunder:

timeout 10-talets topp

Det översta kommandot är oändligt och du måste avsluta det manuellt med Ctrl + C. Det ovannämnda kommandot körs topp i 10 sekunder och när timern är slut kommer timeout att stoppa körningen. Observera att timeout tar sekunder som standard tidsenhet, vilket betyder 10 och 10-talet är samma.

Du kan också använda m, hoch d för minuter, timmaroch dagar respektive.

Skicka dödssignaler manuellt med timeout

Som standard skickar timeout-kommandot SIGTERM som dödsignal. SIGTERM står för Signal avslutas, vilket avslutar processen omedelbart.

Du kan också skicka andra signaler med hjälp av -s flagga. Till exempel för att skicka SIGKILL-signalen:

timeout -s SIGKILL 10 topp

Att specificera signalen med dess signalnummer är också möjlig. Följande kommando skickar också SIGKILL-signalen till det översta kommandot.

timeout -s 9 10 topp

...var 9 är signalnumret för SIGKILL.

För att få en lista över alla tillgängliga signaler:

döda -l

Vissa kommandon slutar inte helt efter att ha lagt till en tidsgräns. I sådana situationer löser problemet problemet genom att lägga till en dödsignal med standard timeout-kommandot.

timeout -k 15 10 topp

Det ovannämnda kommandot kommer först att köra det översta kommandot i 10 sekunder, och om kommandot inte slutar, skickar det en dödssignal till processen efter 15 sekunder.

Läs mer: Hur man dödar program som inte svarar i Linux

Begränsa kommandot körtid med tidsbegränsning

Till skillnad från timeout-kommandot är timelimit inte ett av standardpaketen som förinstalleras på Linux-distros. Därför måste du installera timelimit manuellt på ditt system.

Så här installerar du på Debian-baserade distributioner:

sudo apt installera tidsbegränsning

Timelimit är inte tillgängligt i de officiella Arch repositories. Men du kan installera det med en AUR-pakethanterare som Jippie.

sudo yay -S tidsbegränsning

Relaterad: Hur man installerar paket på Arch Linux

Så här installerar du på Fedora:

sudo dnf installera tidsbegränsning

På RHEL och CentOS:

sudo yum installera tidsbegränsning

Alternativt, om du fortfarande inte kan installera paketet på ditt system, ladda ner källkoden från den officiella webbplatsen och installera den manuellt.

Ladda ner: tidsgräns

Så här kör du det översta kommandot i 10 sekunder med timelimit:

timelimit -t10 topp

Timelimit tar flera argument som varningstid, varnar sig, döda tidoch killsig. Om användaren inte tillhandahåller dessa argument tas deras standardvärden, vilka är varningstid = 3600 sekunder, warnsig = 15, killtime = 120och killsig = 9.

Hantera ett kommandos liv i Linux

Övervaka kommandon och ta kontroll över processerna blir viktigt om din Linux-maskin har begränsade resurser. Verktyg som timeout och tidsgräns är en livräddare eftersom de låter dig lägga till tidsbegränsningar i dina kommandon.

Som kommandotid kan du också begränsa systemets skärmtid. Om du är en förälder som inte vill att ditt barn ska slösa bort onödig tid framför en dator är det mest lämpliga valet att begränsa skärmtiden.

E-post
5 sätt att blockera webbplatser och begränsa skärmtid på Linux

Föräldrakontrollsprogram är praktiskt taget okänt på Linux. Här är flera sätt du kan blockera webbplatser och hantera innehåll på Linux.

Läs Nästa

Relaterade ämnen
  • Linux
  • Linux
Om författaren
Deepesh Sharma (47 artiklar publicerade)

Deepesh är Junior Editor för Linux på MUO. Han har skrivit informationsinnehåll på internet i över 3 år. På fritiden tycker han om att skriva, lyssna på musik och spela gitarr.

Mer från Deepesh Sharma

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!

Ett steg till…!

Bekräfta din e-postadress i e-postmeddelandet som vi just skickade till dig.

.