Управление процессами в Debian\Ubuntu\Mint
Описаное ниже актуально также для большинства дистрибутивов. Статья для «продвинутых» новичков и начинающих администраторов.
Процесс — это единица работы в системе Linux. Каждая программа, которую вы запускаете, представляет из себя один или более процессов, и Linux предоставляет команды для мониторинга и управления ими. Каждый процесс определяется ID-номером процесса, или PID-номером (идентификатор процесса).
Команда ps выводит информацию о ваших работающих процессах и, опционально, о процессах других пользователей.
$ ps
Для просмотра списка всех процессов выполните команду:
$ ps -uх
всех процессов пользователя smith:
$ ps -U smith
всех работающих экземпляров программы program_ пате:
$ ps -С рrogram_пате
процессов в терминале N:
$ ps -tN
конкретных процессов 1, 2 и 3505:
$ ps -pl,2,3505
всех процессов с командными строками, урезанными шириной экрана:
$ ps -ef
всех процессов с полными командными строками:
$ ps -efww
и всех процессов в виде дерева, когда дочерние процессы располагаются ниже родительских с отступом:
$ ps -efH
Помните, что вы можете извлекать более лаконичную информацию из выходных данных команды ps, используя команду grep или другие фильтрующие программы.
Команда uptime сообщает о том, как долго работает система с момента последней загрузки.
$ uptime
Эта информация включает в себя, справа налево: текущее время, время работы системы, количество работающих в системе пользователей и среднюю загрузку системы за три отрезка времени — одну минуту, пять минут и пятнадцать минут (2.15). Средняя загрузка — это среднее число процессов, готовых к выполнению в данный интервал времени.
Команда w выводит текущий процесс для каждого работающего в системе пользователя, или, более точно, для каждого командного процессора каждого пользователя.
$ w
Верхняя строка аналогична строке, которую выводит команда uptime. Колонки обозначают терминал пользователя, хост или Х-дисплей (если это применимо^ которого был осуществлен вход в систему, время входа, время простоя, два измерения процессорного времени. Укажите имя пользователя, чтобы увидеть информацию только об этом пользователе.
Чтобы максимально сократить вывод, попробуйте выполнить команду
w -hfs.
Полезные опции
-h Не выводить строку заголовка
f Не выводить колонку FROM
-s Не выводить колонки JCPU и PCPU
Команда top позволяет следить за наиболее активными процессами, обновляя данные через определенные интервалы времени (скажем, каждую секунду). Это консольная программа, которая обновляет данные интерактивно.
$ top
Когда выполняется программа top, вы можете нажимать клавиши, чтобы изменять ее поведение, например задавать скорость обновления (s), скрывать бездействующие процессы (i) или убивать процессы (к). Нажмите h, чтобы увидеть полный список, и q, чтобы выйти из программы.
Полезные опции
Команда free выводит статистику использования памяти в килобайтах.
$ free
Ядро Linux резервирует максимально возможный объем для кэширования, поэтому наилучшая оценка свободного объема оперативной памяти в предыдущих выходных данных — 299000.
Полезные опции
УПРАВЛЕНИЕ ПРОЦЕССАМИ
Команда kill отправляет сигнал процессу. Он может завершить процесс (действие по умолчанию), прервать его, приостановить, аварийно завершить и т. д. Вы должны быть владельцем процесса или суперпользователем, чтобы выполнять над ним операции.
$ kill 13243
Если эта команда не сработает — некоторые программы перехватывают сигнал и не реагируют на него — добавьте опцию -KILL:
$ kill -KILL 13243
которая практически гарантирует выполнение команды. Однако это некорректный выход для программы, он может оставить в системе неосвобожденные ресурсы (или привести к другим несогласованностям) после ее завершения.
Если вы не знаете идентификатора процесса, попробуйте использовать команду pidof:
pidof программа
или выполните команду ps и изучите ее выходные данные.
Помимо программы /bin/kill в файловой системе, большинство командных процессоров имеют встроенные команды kill, но их синтаксис и поведение отличаются. Однако, все они поддерживают следующий синтаксис:
$ kill -N PID $ kill -NAME PID
где PID — идентификатор процесса, N- номер сигнала, a NAME — это название сигнала без префикса «SIG» (например, используйте -HUP для того, чтобы отправить сигнал SIGHUP). Для того чтобы посмотреть на полный список сигналов, передаваемых командой kill, выполните команду kill -1, хотя ее вывод может отличаться в зависимости от того, какую команду kill вы выполняете. Для того чтобы получить описание сигналов, выполните команду man 7 signal.
Вызывая программу, которая интенсивно использует системные ресурсы, вы, возможно, захотите сделать так, чтобы и другие процессы (и пользователи) имели достаточно ресурсов, посредством задания ее приоритета. Именно для этого и предназначена команда nice. Ниже приведен пример установки приоритета 7 для сложной задачи.
$ nice -7 sort VeryLargeFile > outfile
Если вы не указываете приоритет, то будет установлен приоритет 10. Чтобы узнать, какой приоритет стандартный (т. е. приоритет, который устанавливается, если вы не выполняете команду nice), выполните команду nice без аргументов.
$ nice
Если вы суперпользователь, вы также можете повысить приоритет (уменьшить число):
$ nice — -10
(да, здесь два минуса, что это означает: опция «минус 10»). Чтобы посмотреть на nice-значвния ваших процессов, используйте команду ps и смотрите в колонку «NI».
$ ps -о pid,user,args,nice
Тогда как команда nice может вызывать программы с заданным приоритетом, команда renice изменяет приоритет уже запущенного процесса.
Ниже мы увеличиваем nice-значение (уменьшаем приоритет) процесса 28734 на пять.
$ renice +5 -р 28734
Обычные пользователи могут уменьшать приоритеты (увеличивать число), а суперпользователь может и повышать приоритеты (уменьшать число). Допустимый диапазон — от -20 до +20, но избегайте использования больших отрицательных чисел, иначе вы можете повлиять на жизненно важные системные процессы.
Полезные опции
Добавить комментарий