For systemadministratorer som er ansvarlige for å kontrollere Linux-servere, er ressursadministrasjon en viktig oppgave å ta seg av. Noen ganger tar Linux-kommandoer en stor del av systemressursene og må stoppes.

Heldigvis kan du begrense kjøretiden til kommandoene dine ved hjelp av verktøy som tidsbegrensning. I denne artikkelen vil vi diskutere hvorfor du bør legge til tidsbegrensninger i kommandoene dine og hvordan du legger til en tidsbegrensning ved hjelp av kommandoer som tidsbegrensning og tidsavbrudd.

Hvorfor begrense en kommandos kjøretid?

Det er flere grunner til at du kanskje må kjøre kommandoene dine med en tidsbegrensning. For det første kan det hende du kjører en eldre datamaskin eller en server og ikke vil at systemet skal kaste bort ressursene i uønsket behandling.

For det andre avsluttes tidsbundne oppgaver som filoverføring etter en viss periode, men prosessene deres stopper ikke umiddelbart. For å begrense programmet fra å ta ekstra CPU-tid og minne, kan du legge til en grense som stopper prosessen når overføringen er fullført.

Legg til grense ved hjelp av timeout-kommandoen

Timeout-kommandoen er førstevalget for mange Linux-brukere for å legge til en tidsbegrensning i kommandoene. Siden dette verktøyet er en del av GNU Core Utilities pakken, kommer den forhåndsinstallert på nesten alle Linux-distribusjoner.

Den grunnleggende syntaksen til timeout-kommandoen er:

timeout limit command

...hvor grense er hvor lang tid kommandoen skal kjøre i og kommando er Linux-kommandoen du vil utføre med en tidsbegrensning.

For eksempel hvis du vil få prosessdetaljer ved hjelp av topp kommando i 10 sekunder:

timeout 10s topp

Toppkommandoen slutter uendelig, og du må avslutte den manuelt ved hjelp av Ctrl + C. Den nevnte kommandoen vil kjøre topp i 10 sekunder, og når timeren er oppe, vil timeout stoppe utførelsen. Merk at tidsavbrudd tar sekunder som standard tidsenhet, som betyr 10 og 10-tallet er det samme.

Du kan også bruke m, h, og d til minutter, timer, og dager henholdsvis.

Send drapssignaler manuelt med tidsavbrudd

Som standard sender timeout-kommandoen SIGTERM som drapsignal. SIGTERM står for Signal avslutt, som avslutter prosessen umiddelbart.

Du kan også sende andre signaler ved hjelp av -s flagg. For eksempel for å sende SIGKILL-signalet:

timeout -s SIGKILL 10 topp

Det er også mulig å spesifisere signalet med signalnummeret. Følgende kommando sender også SIGKILL-signalet til toppkommandoen.

timeout -s 9 10 topp

...hvor 9 er signalnummeret for SIGKILL.

For å få en liste over alle tilgjengelige signaler:

drepe -l

Noen kommandoer stopper ikke helt selv etter at en tidsfrist er lagt til. I slike situasjoner løser du problemet ved å legge til et drepsignal med standard timeout-kommandoen.

timeout -k 15 10 topp

Den nevnte kommandoen vil først kjøre den øverste kommandoen i 10 sekunder, og hvis kommandoen ikke stopper, vil den sende et drapsignal til prosessen etter 15 sekunder.

Lære mer: Hvordan drepe programmer som ikke svarer i Linux

Begrensning av kommando-kjøretid med tidsbegrensning

I motsetning til timeout-kommandoen er ikke timelimit en av standardpakker som er forhåndsinstallert på Linux-distribusjoner. Derfor må du installere timelimit manuelt på systemet ditt.

Slik installerer du på Debian-baserte distribusjoner:

sudo apt installer tidsbegrensning

Timelimit er ikke tilgjengelig i de offisielle Arch repositories. Men du kan installere den ved hjelp av en AUR-pakkebehandling som Jippi.

sudo yay -S tidsbegrensning

I slekt: Slik installerer du pakker på Arch Linux

Slik installerer du på Fedora:

sudo dnf installer tidsbegrensning

På RHEL og CentOS:

sudo yum installer tidsbegrensning

Alternativt, hvis du fremdeles ikke kan installere pakken på systemet ditt, kan du laste ned kildekoden fra det offisielle nettstedet og installere den manuelt.

nedlasting: tidsbegrensning

Slik kjører du den øverste kommandoen i 10 sekunder ved hjelp av timelimit:

timelimit -t10 topp

Timelimit tar flere argumenter som warntime, advarer, slå ihjel tid, og killsig. Hvis brukeren ikke oppgir disse argumentene, blir standardverdiene tatt warntime = 3600 sekunder, warnsig = 15, killtime = 120, og killsig = 9.

Administrere livet til en kommando i Linux

Å overvåke kommandoene og ta kontroll over prosessene blir viktig hvis Linux-maskinen din har begrensede ressurser. Verktøy som tidsavbrudd og tidsbegrensning er en livredder ettersom de lar deg legge til tidsbegrensninger i kommandoene dine.

Som kommando kjøretid, kan du også begrense systemets skjermtid. Hvis du er en forelder som ikke vil at barnet ditt skal kaste bort unødvendig tid foran en datamaskin, er det mest hensiktsmessige valget å begrense skjermtiden.

E-post
5 måter å blokkere nettsteder og begrense skjermtid på Linux

Foreldrekontrollprogramvare er nesten uhørt på Linux. Her er flere måter du kan blokkere nettsteder og administrere innhold på Linux.

Les Neste

Relaterte temaer
  • Linux
  • Linux
Om forfatteren
Deepesh Sharma (47 artikler publisert)

Deepesh er Junior Editor for Linux på MUO. Han har skrevet informasjonsinnhold på internett i over 3 år. På fritiden liker han å skrive, høre på musikk og spille gitaren.

Mer fra Deepesh Sharma

Abonner på vårt nyhetsbrev

Bli med på nyhetsbrevet vårt for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!

Ett steg til…!

Bekreft e-postadressen din i e-posten vi nettopp sendte deg.

.