Voor systeembeheerders die verantwoordelijk zijn voor het besturen van Linux-servers, is resourcebeheer een belangrijke taak om voor te zorgen. Soms nemen Linux-opdrachten een enorm stuk systeembronnen in beslag en moeten ze worden gestopt.
Gelukkig kun je de looptijd van je opdrachten beperken met hulpprogramma's zoals tijdslimiet. In dit artikel zullen we bespreken waarom u tijdslimieten aan uw opdrachten moet toevoegen en hoe u een tijdsbeperking kunt toevoegen met opdrachten als tijdslimiet en time-out.
Waarom de looptijd van een opdracht beperken?
Er zijn verschillende redenen waarom u uw opdrachten mogelijk met een tijdslimiet moet uitvoeren. Ten eerste gebruikt u mogelijk een oudere computer of een server en wilt u niet dat uw systeem zijn bronnen verspilt aan ongewenste verwerking.
Ten tweede eindigen tijdgebonden taken zoals bestandsoverdrachten na een bepaalde periode, maar stoppen hun processen niet onmiddellijk. Om te voorkomen dat het programma extra CPU-tijd en geheugen in beslag neemt, kunt u een limiet toevoegen die het proces stopt zodra de overdracht is voltooid.
Limiet toevoegen met behulp van de time-outopdracht
Het time-outcommando is de eerste keuze van veel Linux-gebruikers om een tijdbeperking aan hun commando's toe te voegen. Omdat deze tool deel uitmaakt van de GNU Core Utilities pakket, is het vooraf geïnstalleerd op bijna elke Linux-distributie.
De basissyntaxis van de time-outopdracht is:
time-out limiet commando
...waar limiet is de hoeveelheid tijd dat de opdracht moet worden uitgevoerd en opdracht is het Linux-commando dat u met een tijdslimiet wilt uitvoeren.
Als u bijvoorbeeld procesdetails wilt ophalen met behulp van de top commando gedurende 10 seconden:
time-out 10s boven
Het bovenste commando is oneindig en je moet het handmatig stoppen met Ctrl + C. De bovengenoemde opdracht wordt gedurende 10 seconden bovenaan uitgevoerd en zodra de timer is afgelopen, stopt de time-out met de uitvoering ervan. Houd er rekening mee dat de time-out duurt seconden als de standaard tijdseenheid, wat betekent 10 en 10 s zijn hetzelfde.
Je kan ook gebruiken m, h, en d voor minuten, uren, en dagen respectievelijk.
Handmatig dodingssignalen verzenden met time-out
Standaard verzendt het time-outcommando SIGTERM als het kill-signaal. SIGTERM staat voor Signaal beëindigen, waardoor het proces onmiddellijk wordt beëindigd.
U kunt ook andere signalen verzenden met de -s vlag. Om bijvoorbeeld het SIGKILL-signaal te verzenden:
time-out -s SIGKILL 10 top
Het specificeren van het signaal met zijn signaalnummer is ook mogelijk. Het volgende commando stuurt ook het SIGKILL-signaal naar het bovenste commando.
time-out -s 9 10 top
...waar 9 is het signaalnummer voor SIGKILL.
Om een lijst met alle beschikbare signalen te krijgen:
doden -l
Sommige opdrachten stoppen niet volledig, zelfs niet nadat een tijdslimiet is toegevoegd. In dergelijke situaties lost het toevoegen van een kill-signaal met de standaard time-outopdracht het probleem op.
time-out -k 15 10 top
De bovengenoemde opdracht voert eerst de opdracht top 10 seconden uit en als de opdracht niet stopt, stuurt het na 15 seconden een kill-signaal naar het proces.
Kom meer te weten: Hoe niet-reagerende programma's in Linux te doden
Beperking van opdrachtruntime met tijdslimiet
In tegenstelling tot het time-outcommando is timelimit niet een van de standaardpakketten die vooraf zijn geïnstalleerd op Linux-distributies. Daarom moet u timelimit handmatig op uw systeem installeren.
Om te installeren op op Debian gebaseerde distributies:
sudo apt install timelimit
Timelimit is niet beschikbaar in de officiële Arch-repositories. Maar u kunt het installeren met een AUR-pakketbeheerder zoals ja.
sudo yay -S tijdslimiet
Verwant: Pakketten installeren op Arch Linux
Om te installeren op Fedora:
sudo dnf install timelimit
Op RHEL en CentOS:
sudo yum install timelimit
Als alternatief, als u het pakket nog steeds niet op uw systeem kunt installeren, downloadt u de broncode van de officiële website en installeert u het handmatig.
Downloaden: tijdslimiet
Om het bovenste commando gedurende 10 seconden uit te voeren met timelimit:
tijdslimiet -t10 top
Timelimit accepteert meerdere argumenten, zoals waarschuwen, waarschuwt, tijd te doden, en doodt. Als de gebruiker deze argumenten niet opgeeft, worden hun standaardwaarden gebruikt, namelijk warningtime = 3600 seconden, warnsig = 15, killtime = 120, en killsig = 9.
De levensduur van een commando beheren in Linux
Het monitoren van de commando's en het overnemen van de processen wordt belangrijk als uw Linux-machine over beperkte middelen beschikt. Hulpprogramma's zoals time-out en tijdslimiet zijn een redder in nood omdat u hiermee tijdsbeperkingen aan uw opdrachten kunt toevoegen.
Net als bij opdrachtruntime, kunt u ook de schermtijd van uw systeem beperken. Als u een ouder bent en niet wilt dat uw kind onnodige tijd verspilt achter een computer, is het beperken van de schermtijd de meest geschikte keuze.
Software voor ouderlijk toezicht is vrijwel ongehoord op Linux. Hier zijn verschillende manieren waarop u sites kunt blokkeren en inhoud op Linux kunt beheren.
Lees Volgende
- Linux
- Linux
Deepesh is de Junior Editor voor Linux bij MUO. Hij schrijft al meer dan drie jaar informatieve inhoud op internet. In zijn vrije tijd houdt hij van schrijven, naar muziek luisteren en gitaar spelen.
Abonneer op onze nieuwsbrief
Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!
Nog een stap…!
Bevestig uw e-mailadres in de e-mail die we u zojuist hebben gestuurd.