За системните администратори, които отговарят за контрола на Linux сървърите, управлението на ресурсите е важна задача, за която трябва да се погрижат. Понякога командите на Linux заемат огромна част от системните ресурси и трябва да бъдат спрени.
За щастие можете да ограничите времето на изпълнение на вашите команди, като използвате помощни програми като краен срок. В тази статия ще обсъдим защо трябва да добавите времеви ограничения към вашите команди и как да добавите ограничение за време, като използвате команди като timelimit и timeout.
Защо да ограничаваме времето на изпълнение на командата?
Има няколко причини, поради които може да се наложи да изпълнявате командите си с ограничение във времето. Първо, може да използвате по-стар компютър или сървър и не искате системата ви да губи ресурсите си при нежелана обработка.
Второ, сроковите задачи като прехвърляне на файлове приключват след определен период, но техните процеси не спират веднага. За да ограничите програмата да отнема допълнително време и памет на процесора, можете да добавите ограничение, което ще спре процеса, след като прехвърлянето завърши.
Добавете ограничение с помощта на командата за изчакване
Командата за изчакване е първият избор от много потребители на Linux, които добавят ограничение във времето към своите команди. Тъй като този инструмент е част от Основни помощни програми на GNU пакет, той е предварително инсталиран на почти всяка дистрибуция на Linux.
Основният синтаксис на командата за изчакване е:
команда за ограничение на времето за изчакване
...където граница е времето, през което командата трябва да работи и команда е командата на Linux, която искате да изпълните с ограничение във времето.
Например, ако искате да получите подробности за процеса с помощта на Горна част команда за 10 секунди:
таймаут 10 секунди отгоре
Най-горната команда е безкрайна и трябва ръчно да я напуснете с помощта на Ctrl + C. Гореспоменатата команда ще работи отгоре за 10 секунди и след като таймерът изтече, времето за изчакване ще спре изпълнението му. Имайте предвид, че времето за изчакване отнема секунди като единица време по подразбиране, което означава 10 и 10 секунди са същите.
Можете също да използвате м, з, и д за минути, часа, и дни съответно.
Изпращайте ръчно сигнали за убийство с изчакване
По подразбиране командата за изчакване изпраща SIGTERM като сигнал за убиване. SIGTERM означава Прекратяване на сигнала, което прекратява незабавно процеса.
Можете да изпращате и други сигнали, като използвате -с флаг. Например, за да изпратите сигнала SIGKILL:
изчакване -s SIGKILL 10 отгоре
Възможно е също да се посочи сигналът с неговия номер на сигнала. Следващата команда изпраща сигнала SIGKILL и до горната команда.
изчакване -s 9 10 отгоре
...където 9 е номерът на сигнала за SIGKILL.
За да получите списък с всички налични сигнали:
убий -л
Някои команди не спират напълно дори след добавяне на ограничение във времето. В такива ситуации добавянето на сигнал за убиване с командата за изчакване по подразбиране решава проблема.
таймаут -k 15 10 отгоре
Гореспоменатата команда първо ще изпълни горната команда за 10 секунди и ако командата не спре, тя ще изпрати сигнал за убиване на процеса след 15 секунди.
Научете повече: Как да убиете програми, които не реагират в Linux
Ограничаване на времето за изпълнение на командата с timelimit
За разлика от командата timeout, timelimit не е един от стандартните пакети, които се предлагат предварително инсталирани на дистрибуции на Linux. Следователно ще трябва ръчно да инсталирате timelimit на вашата система.
За да инсталирате на дистрибуции, базирани на Debian:
sudo apt инсталирайте timelimit
Timelimit не е наличен в официалните хранилища на Arch. Но можете да го инсталирате с помощта на AUR мениджър на пакети като да.
sudo yay -S timelimit
Свързани: Как да инсталирате пакети на Arch Linux
За да инсталирате на Fedora:
sudo dnf инсталирайте timelimit
На RHEL и CentOS:
sudo yum инсталиране на време
Като алтернатива, ако все още не можете да инсталирате пакета на вашата система, изтеглете изходния код от официалния уебсайт и го инсталирайте ръчно.
Изтегли: краен срок
За да стартирате горната команда за 10 секунди, като използвате timelimit:
timelimit -t10 отгоре
Timelimit приема множество аргументи като време на работа, warnsig, Време за убиване, и killsig. Ако потребителят не предостави тези аргументи, се вземат стойностите им по подразбиране, които са време на работа = 3600 секунди, warnsig = 15, време за убиване = 120, и killsig = 9.
Управление на живота на една команда в Linux
Наблюдението на командите и поемането на контрол над процесите става важно, ако вашата Linux машина има ограничени ресурси. Помощни програми като timeout и timelimit са спасител, тъй като ви позволяват да добавяте ограничения във времето към вашите команди.
Подобно на изпълнението на командите, вие също можете да ограничите времето на използване на екрана на вашата система. Ако сте родител, който не иска детето ви да губи ненужно време пред компютъра, ограничаването на времето на екрана е най-подходящият избор.
Софтуерът за родителски контрол е практически нечуван за Linux. Ето няколко начина за блокиране на сайтове и управление на съдържание в Linux.
Прочетете Напред
- Linux
- Linux
Deepesh е младши редактор за Linux в MUO. Той пише информационно съдържание в интернет повече от 3 години. В свободното си време той обича да пише, да слуша музика и да свири на китара.
Абонирайте се за нашия бюлетин
Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и ексклузивни оферти!
Още една стъпка…!
Моля, потвърдете имейл адреса си в имейла, който току-що ви изпратихме.