Для системных администраторов, отвечающих за управление серверами Linux, управление ресурсами является важной задачей. Иногда команды Linux занимают огромную часть системных ресурсов, и их необходимо остановить.

К счастью, вы можете ограничить время выполнения ваших команд с помощью таких утилит, как лимит времени. В этой статье мы обсудим, почему вы должны добавлять ограничения по времени к своим командам и как добавить ограничение по времени с помощью таких команд, как timelimit и timeout.

Зачем ограничивать время выполнения команды?

Есть несколько причин, по которым вам, возможно, придется запускать свои команды с ограничением по времени. Во-первых, вы можете использовать старый компьютер или сервер и не хотите, чтобы ваша система тратила ресурсы на нежелательную обработку.

Во-вторых, ограниченные по времени задачи, такие как передача файлов, завершаются через определенный период, но их процессы не останавливаются немедленно. Чтобы ограничить использование программой дополнительного времени процессора и памяти, вы можете добавить ограничение, которое остановит процесс после завершения передачи.

instagram viewer

Добавить ограничение с помощью команды тайм-аута

Команда timeout - это первый выбор многих пользователей Linux, которые добавляют в свои команды ограничение по времени. Поскольку этот инструмент является частью Основные утилиты GNU пакет, он предустановлен почти в каждом дистрибутиве Linux.

Основной синтаксис команды тайм-аута:

команда ограничения тайм-аута

...где предел время, в течение которого должна выполняться команда, и команда - это команда Linux, которую вы хотите выполнить с ограничением по времени.

Например, если вы хотите получить подробную информацию о процессе, используя вершина команду на 10 секунд:

тайм-аут 10 с наверх

Верхняя команда бесконечна, и вы должны вручную выйти из нее, используя Ctrl + C. Вышеупомянутая команда будет запускаться сверху в течение 10 секунд, и как только таймер истечет, тайм-аут остановит ее выполнение. Обратите внимание, что тайм-аут занимает секунды в качестве единицы времени по умолчанию, что означает 10 а также 10 с одинаковы.

Вы также можете использовать м, час, а также d для минут, часы, а также дней соответственно.

Отправка сигналов об уничтожении вручную с тайм-аутом

По умолчанию команда timeout отправляет SIGTERM в качестве сигнала уничтожения. SIGTERM означает Сигнал прекращения, что немедленно завершает процесс.

Вы также можете отправлять другие сигналы, используя -s флаг. Например, чтобы отправить сигнал SIGKILL:

таймаут -s SIGKILL 10 наверх

Также возможно указание сигнала с его номером сигнала. Следующая команда также отправляет сигнал SIGKILL верхней команде.

таймаут -s 9 10 наверх

...где 9 это номер сигнала для SIGKILL.

Чтобы получить список всех доступных сигналов:

kill -l

Некоторые команды не останавливаются полностью даже после добавления ограничения по времени. В таких ситуациях добавление сигнала уничтожения с командой тайм-аута по умолчанию решает проблему.

таймаут -k 15 10 наверх

Вышеупомянутая команда сначала запустит верхнюю команду в течение 10 секунд, и если команда не остановится, она отправит процессу сигнал уничтожения через 15 секунд.

Учить больше: Как убить не отвечающие программы в Linux

Ограничение времени выполнения команд с помощью timelimit

В отличие от команды timeout, timelimit не входит в число стандартных пакетов, предустановленных в дистрибутивах Linux. Следовательно, вам придется вручную установить ограничение по времени в вашей системе.

Для установки в дистрибутивах на основе Debian:

sudo apt install timelimit

Timelimit недоступен в официальных репозиториях Arch. Но вы можете установить его с помощью диспетчера пакетов AUR, например ура.

sudo yay -S timelimit

Связанный: Как установить пакеты в Arch Linux

Для установки в Fedora:

sudo dnf установить timelimit

В RHEL и CentOS:

sudo yum установить ограничение по времени

В качестве альтернативы, если вы по-прежнему не можете установить пакет в своей системе, загрузите исходный код с официального сайта и установите его вручную.

Скачать: лимит времени

Чтобы запустить команду top в течение 10 секунд с использованием timelimit:

timelimit -t10 наверх

Timelimit принимает несколько аргументов, например предупреждение, предупреждение, убивать время, а также Killsig. Если пользователь не предоставляет эти аргументы, используются их значения по умолчанию, которые warntime = 3600 секунды, warnsig = 15, killtime = 120, а также killsig = 9.

Управление сроком службы команды в Linux

Мониторинг команд и контроль над процессами становится важным, если ваша Linux-машина имеет ограниченные ресурсы. Такие утилиты, как timeout и timelimit, спасают жизнь, поскольку позволяют добавлять ограничения по времени к вашим командам.

Как и во время выполнения команд, вы также можете ограничить экранное время вашей системы. Если вы являетесь родителем, который не хочет, чтобы ваш ребенок тратил ненужное время на компьютер, ограничение экранного времени - наиболее подходящий вариант.

Электронное письмо
5 способов заблокировать сайты и ограничить время экрана в Linux

Программное обеспечение для родительского контроля практически не встречается в Linux. Вот несколько способов блокировать сайты и управлять контентом в Linux.

Читать далее

Похожие темы
  • Linux
  • Linux
Об авторе
Дипеш Шарма (Опубликовано 47 статей)

Дипеш - младший редактор Linux в MUO. Он пишет информационный контент в Интернете более 3 лет. В свободное время он любит писать, слушать музыку и играть на гитаре.

Ещё от Deepesh Sharma

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Еще один шаг…!

Пожалуйста, подтвердите свой адрес электронной почты в электронном письме, которое мы вам только что отправили.

.