Linux: Управление процессами из консоли

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

Многие программы, перечисленные здесь выполняют только одну функцию и могут быть объединены - такова философия написания программ для Unix. Другие программы, такие как htop, предоставляют более дружественный интерфейс, поверх остальных программ.

top - мониторинг загрузки системы в режиме реального времени

Комманда top - это стандартная программа, используемая для мониторинга загрузки системы в режиме реального времени. В комманде top можно отслеживать программы, в зависимости от различных потребляемых ресурсов, таких как загрузка процессора, использование памяти, имя пользователя и так далее.

Для выхода из программы нажмите комбинацию клавиш Ctrl-C.

htop - усовершенствованная версия утилиты top

Комманда htop - это усовершенствованная версия комманды top. По умолчанию она не установлена в системе, но это легко исправить, выполнив комманду "sudo apt-get install htop"

htop отображает ту-же информацию, что и комманда top, только в отличие от последней, у комманды htop более наглядный интерфейс, использующий меню, как у файлового менеджера для консоли Midnight Commander, доступ к которому осуществляется функциональными клавишами (F1 - F10). htop также умеет сортировать выводимую информацию по различным критериям, останавливать процессы, изменять приоритеты и многое другое, что может стандартная комманда top.

ps - отображение списка процессов

Кооманда ps отображает список запущенных процессов. По умолчанию, комманда top выводит список процессов текущего пользователя, из-под которого запускается комманда. Для вывода списка процессов для всех пользователей нужно воспользоваться коммандой "ps -A". Количество параметров коммандной строки, которые принимает комманда top - огромно, поэтому за более детальной информацией смотрите мануал: "man top"

Так как список процессов обычно не влазит в один экран, удобно воспользоваться перенаправлением вывода комманды на вход комманды less, что позволит прокуручивать результирующую информацию по мере необходимости в прямом и обратном направлении: "ps -A | less". По завершении работы со списком процессов нажмите клавишу "q".

Вывод комманды "ps" вы конечно-же можете перенаправить на вход комманды "grep", для того, чтоб найти конкретный процесс, вместо листания полного списка. Следующая комманда найдет все процессы, содержищие в имени "wine": "ps -A | grep wine":

ps -A | grep firefox

pstree - отображение дерева процессов

Комманда pstree - это еще один способ отображения процессов. Дело в том, что каждый процесс имеет своего родителя, запустившего его. Поэтому, если вам нужно увидеть не только список процессов, а и видеть отношения между ними - комманда pstree подойдет как нельзя лучше.

kill - завершение работы процесса по его ID

Коммнада kill предназначена для завершения работы процесса, по его ID. ID процесса вы можете получить выполнив комманды ps -A, top, или pgrep. На самом деле, комманда kill отправляет сигнал процессу, ID которого указан в качестве параметра. По умолчанию, процессу отправляется сигнал TERM (15), в качестве параметра могут быть отправлены сигналы, которые не завершают работу процесса, например HUP (1). Иногда процесс так крепко зависает, что не удается убить коммандой "kill имя_процесса", в таком случае можно отправить процессу сигнал KILL (9), который точно убьет процесс, но это средство следует использовать в крайнем случае.

pgrep - получение ID процесса по его имени

Комманда pgrep принимает в качестве параметра коммндной строки имя процесса и возвращает его ID. Например комманда "pgrep gedit" найдет ID для процесса gedit:

pkill & killall - завершение работы процесса по его имени

Для того, чтоб убить процесс по его имени, а не по ID, следует использовать комманды pkill and killall. Воспользуйтесь любой из комманд, для того, чтоб убить процесс gedit:

killall gedit

pkill gedit

Преимущество данных комманд, перед простой коммандой kill, это то, что они дают возможность одной коммандой убить сразу несколько процессов.

renice - изменение приоритета выполнения уже запущенного процесса

Комманда renice изменяет значение параметра nice любого запущенного процесса. Значение nice определяет приоритет, с которым работает процесс. Значение -19 соответствует самому высокому приоритету, а значение 19 - самому низкому. Значение 0 - используется по умолчанию.

Комманде renice в качестве параметра нужен ID процесса. Следующая комманда установит для процесса gedit минимальный приоритет:

You can use the pgrep trick above with renice, too.

Если вы хотите повысить приоритет процессу - вам понадобятся полномочия суперпользователя.

xkill - завершение работы программы через графический интерфейс

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

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


На этом пока все. Если у вас есть замечания, или есть чем дополнить данную статью - пишите комментарии.

Добавить комментарий

You must have Javascript enabled to use this form.