Pentru administratorii de sistem care sunt responsabili de controlul serverelor Linux, gestionarea resurselor este o sarcină importantă de care trebuie să aveți grijă. Uneori, comenzile Linux ocupă o mare parte din resursele sistemului și trebuie oprite.

Din fericire, puteți limita durata de rulare a comenzilor dvs. utilizând utilitare precum limita. În acest articol, vom discuta de ce ar trebui să adăugați limite de timp comenzilor dvs. și cum să adăugați o restricție de timp utilizând comenzi precum timelimit și timeout.

De ce să limitați timpul de execuție al unei comenzi?

Există mai multe motive pentru care este posibil să trebuiască să rulați comenzile cu o limită de timp. În primul rând, este posibil să rulați un computer sau un server mai vechi și nu doriți ca sistemul dvs. să-și irosească resursele în procesări nedorite.

În al doilea rând, sarcinile legate de timp, cum ar fi transferurile de fișiere, se termină după o anumită perioadă, dar procesele lor nu se opresc imediat. Pentru a restricționa programul de a prelua timp și memorie CPU suplimentare, puteți adăuga o limită care va opri procesul odată ce transferul se va finaliza.

instagram viewer

Adăugați limită utilizând comanda de expirare

Comanda timeout este prima alegere a multor utilizatori Linux care adaugă o restricție de timp comenzilor lor. Deoarece acest instrument face parte din GNU Core Utilities pachet, vine preinstalat pe aproape fiecare distribuție Linux.

Sintaxa de bază a comenzii de expirare este:

comanda limită de expirare

...Unde limită este cantitatea de timp pentru care ar trebui să ruleze comanda și comanda este comanda Linux pe care doriți să o executați cu o limită de timp.

De exemplu, dacă doriți să obțineți detalii despre proces folosind top comanda timp de 10 secunde:

timeout 10s top

Comanda de sus nu are sfârșit și trebuie să o părăsiți manual folosind Ctrl + C. Comanda menționată mai sus va rula top timp de 10 secunde și odată ce cronometrul este activat, timeout-ul va opri executarea acestuia. Rețineți că timpul de expirare durează secunde ca unitate de timp implicită, ceea ce înseamnă 10 și 10s sunt la fel.

Puteți utiliza, de asemenea m, h, și d pentru minute, ore, și zile respectiv.

Trimiteți manual semnale de ucidere cu expirare

În mod implicit, comanda de expirare trimite SIGTERM ca semnal de ucidere. SIGTERM înseamnă Semnalul se termină, care pune capăt procesului imediat.

Puteți trimite și alte semnale folosind -s steag. De exemplu, pentru a trimite semnalul SIGKILL:

timeout -s SIGKILL 10 top

De asemenea, este posibilă specificarea semnalului cu numărul său de semnal. Următoarea comandă trimite semnalul SIGKILL și la comanda de sus.

timeout -s 9 10 top

...Unde 9 este numărul de semnal pentru SIGKILL.

Pentru a obține o listă cu toate semnalele disponibile:

ucide -l

Unele comenzi nu se opresc complet chiar și după adăugarea unei limite de timp. În astfel de situații, adăugarea unui semnal de ucidere cu comanda de expirare implicită rezolvă problema.

timeout -k 15 10 top

Comanda menționată mai sus va rula mai întâi comanda de sus timp de 10 secunde și, dacă comanda nu se oprește, va trimite un semnal de ucidere procesului după 15 secunde.

Aflați mai multe: Cum să ucizi programele care nu răspund în Linux

Restricționarea timpului de executare a comenzii cu timelimit

Spre deosebire de comanda de expirare, timelimit nu este unul dintre pachetele standard care sunt preinstalate pe distribuțiile Linux. Prin urmare, va trebui să instalați manual timelimit pe sistemul dvs.

Pentru a instala pe distribuții bazate pe Debian:

sudo apt install timelimit

Timelimit nu este disponibil în depozitele oficiale Arch. Dar îl puteți instala folosind un manager de pachete AUR, cum ar fi ura.

sudo yay -S timelimit

Legate de: Cum se instalează pachete pe Arch Linux

Pentru a instala pe Fedora:

sudo dnf install timelimit

Pe RHEL și CentOS:

sudo yum instala timelimit

Alternativ, dacă tot nu puteți instala pachetul pe sistemul dvs., descărcați codul sursă de pe site-ul oficial și instalați-l manual.

Descarca: limita

Pentru a rula comanda de top timp de 10 secunde folosind timelimit:

timelimit -t10 top

Timelimit preia mai multe argumente precum timp de război, warnsig, pierdere de timp, și killsig. Dacă utilizatorul nu furnizează aceste argumente, se iau valorile lor implicite, care sunt warntime = 3600 secunde, warnsig = 15, killtime = 120, și killsig = 9.

Gestionarea vieții unei comenzi în Linux

Monitorizarea comenzilor și preluarea controlului proceselor devine importantă dacă mașina dvs. Linux are resurse limitate. Utilitățile cum ar fi timeout și timelimit sunt un salvator, deoarece vă permit să adăugați restricții de timp comenzilor dvs.

La fel ca runtime-ul comenzilor, puteți restrânge timpul de ecran al sistemului. Dacă sunteți un părinte care nu vrea ca copilul dvs. să piardă timp inutil în fața unui computer, limitarea timpului de ecran este cea mai potrivită alegere.

E-mail
5 moduri de a bloca site-urile și de a limita timpul de ecran pe Linux

Software-ul de control parental este practic nemaiauzit pe Linux. Iată câteva moduri în care puteți bloca site-uri și gestiona conținut pe Linux.

Citiți în continuare

Subiecte asemănătoare
  • Linux
  • Linux
Despre autor
Deepesh Sharma (47 articole publicate)

Deepesh este Junior Editor pentru Linux la MUO. Scrie conținut informațional pe internet de peste 3 ani. În timpul liber, îi place să scrie, să asculte muzică și să cânte la chitară.

Mai multe de la Deepesh Sharma

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletterului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Încă un pas…!

Vă rugăm să confirmați adresa de e-mail în e-mailul pe care tocmai vi l-am trimis.

.