Для системных администраторов, отвечающих за управление серверами Linux, управление ресурсами является важной задачей. Иногда команды Linux занимают огромную часть системных ресурсов, и их необходимо остановить.
К счастью, вы можете ограничить время выполнения ваших команд с помощью таких утилит, как лимит времени. В этой статье мы обсудим, почему вы должны добавлять ограничения по времени к своим командам и как добавить ограничение по времени с помощью таких команд, как timelimit и timeout.
Зачем ограничивать время выполнения команды?
Есть несколько причин, по которым вам, возможно, придется запускать свои команды с ограничением по времени. Во-первых, вы можете использовать старый компьютер или сервер и не хотите, чтобы ваша система тратила ресурсы на нежелательную обработку.
Во-вторых, ограниченные по времени задачи, такие как передача файлов, завершаются через определенный период, но их процессы не останавливаются немедленно. Чтобы ограничить использование программой дополнительного времени процессора и памяти, вы можете добавить ограничение, которое остановит процесс после завершения передачи.
Добавить ограничение с помощью команды тайм-аута
Команда 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, спасают жизнь, поскольку позволяют добавлять ограничения по времени к вашим командам.
Как и во время выполнения команд, вы также можете ограничить экранное время вашей системы. Если вы являетесь родителем, который не хочет, чтобы ваш ребенок тратил ненужное время на компьютер, ограничение экранного времени - наиболее подходящий вариант.
Программное обеспечение для родительского контроля практически не встречается в Linux. Вот несколько способов блокировать сайты и управлять контентом в Linux.
Читать далее
- Linux
- Linux
Дипеш - младший редактор Linux в MUO. Он пишет информационный контент в Интернете более 3 лет. В свободное время он любит писать, слушать музыку и играть на гитаре.
Подписывайтесь на нашу новостную рассылку
Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!
Еще один шаг…!
Пожалуйста, подтвердите свой адрес электронной почты в электронном письме, которое мы вам только что отправили.