Подход к управлению процессами в ОС Linux не так очевиден. Все процессы обладают ограниченными правами и могут влиять только на ограниченные участки системы, что исключает возможность перегрузки процессора при некорректной работе процесса, а знание команд управления процессами позволит быстро справиться с проблемным процессом и стабилизировать работу ОС.
Команды управления процессами
Чтобы увидеть список запущенных процессов, нужно ввести команду
В результате выполнения данной команды будет выведен список запущенных процессов Linux с указанием имени и PID (персональный идентификатор), используемого процессорного времени.
Ввод этой же команды с ключом
позволяет получить расширенную информацию о процессах: PID, использование оперативной памяти и процессора, имя пользователя запустившего процесс, команда запустившая процесс и время работы.
Используя различные ключи команды ps, можно получить и другую информацию о запущенных процессах: ID процесса-родителя, значение приоритета, статус (выполняется, спит, состояние подкачки, остановлен, процесс-зомби), доля памяти и процессорного времени в процентах, время старта и т.д.
Подборка крутых программ для Linux #linux #программы
выводит информацию о состоянии процессов в текущий момент времени. Для отображения информации о списке запущенных процессов Linux в реальном времени используется команда
Результат вывода команды top похож на вывод команды ps, с той разницей, что информации о процессе постоянно обновляется.
Значение приоритета процесса может изменяться от -20 (высокий) до +20 (низкий). По умолчанию запускаемому процессу выставляется приоритет родительского процесса. Для изменения приоритета запускаемого процесса используется команда
nice
которая указывает, насколько приоритет нового процесса должен отличатся от приоритета процесс-родителя.
Значения аргумента команды nice от -20 до +19. Команда
renice
изменяет приоритет запущенных процессов: renice -3522 -uuser– увеличение приоритета на 3 для процессов пользователя user и с идентификатором 522.
Выставление отрицательных приоритетов доступно только суперпользователю.
Для приостановки, завершения, запуска приостановленного процесса, а также для сообщения процессам другой информации, используются сигналы посылаемые процессам с помощью команды kill, например:
- kill-9 688 – завершение процесса с PID688 в любом случае (сигнал kill);
- kill -15 688 – завершение процесса с PID688 программно (сигнал term);
- kill -19 688 – приостановка выполнения процесса с PID688 (сигнал stop).
«Зомби» в списке запущенных процессов Linux
Частенько в списке запущенных процессов Linux можно увидеть процессы-зомби (в графе статуса таких процессов стоит буква Z). Такие процессы образуются в том случае, если была вызвана команда завершения процесса, родитель которого еще не выполняется и которому может понадобиться обращение к данному процессу. Z-процесс не использует никакие ресурсы.
Linux Mint: установка программ и на что нужно обратить внимание? (Урок №6)
Просмотреть родителей процессов-зомби можно командой
ps –lax
Для того, чтобы убрать «зомби» из списка запущенных процессов Linux надо завершить родительский процесс.
- delitme 0.90
- 22 ноября 2013, 09:28
- 19994
Источник: www.adodo.ru
Как посмотреть количество запущенных процессов в linux
На сайте уже есть несколько статей про процессы Linux, в которых подробно описано как ими управлять или как завершить один или группу процессов, но это еще не все. Чтобы правильно управлять процессами и ориентироваться в них вам нужно научиться анализировать список процессов Linux, понимать что значит каждый пункт и зачем он нужен.
В этой статье мы подробно рассмотрим как посмотреть список процессов различными способами, разберем какими бывают процессы, почему так происходит и что с этим делать.
Список процессов в Linux
- Процесс — если говорить простыми словами, это программа и её данные, загруженные в память компьютера;
- Дочерний процесс — процессы могут запускать другие процессы для выполнения параллельных задач или других целей такие процессы называются дочерними. Для них выделяется отдельная область в памяти;
- Поток — поток отличается от процесса тем, что использует ту же память, данные и дескрипторы файлов, что и процесс, в котором он был создан.
1. Утилита ps
Самый простой способ посмотреть список процессов, запущенных в текущей командой оболочке, использовать команду ps без параметров:
Но вряд-ли вас интересует именно это. Чтобы посмотреть все процессы, добавьте опцию -e, а для максимально подробной информации — опцию -F:
Вот значение основных колонок в выводе утилиты:
- UID — имя пользователя, от имени которого работает процесс;
- PID — идентификатор пользователя;
- PPID — идентификатор родительского процесса пользователя;
- C — расходование ресурсов процессора, в процентах;
- SZ — размер процесса;
- RSS — реальный размер процесса в памяти;
- PSR — ядро процессора, на котором выполняется процесс;
- STIME — время, когда процесс был запущен;
- TTY — если процесс привязан к терминалу, то здесь будет выведен его номер;
- TIME — общее время выполнения процесса (user + system);
- CMD — команда, которой был запущен процесс, если программа не может прочитать аргументы процесса, он будет выведен в квадратных скобках;
Чтобы посмотреть список процессов в виде дерева, и понимать какой процесс имеет какие дочерние процессы, выполните команду:
Для просмотра списка процессов с потоками используйте опцию -L:
Здесь появятся ещё две дополнительных колонки:
- LWP — Это сокращение от LightWeight Proccess. Идентификатор потока;
- NLWP — количество потоков у этого процесса.
Чтобы посмотреть список процессов определенного пользователя, например, sergiy используйте опцию -u:
Теперь давайте перейдём к другим, более интересным, интерактивным утилитам.
2. Утилита top
Утилита top не поставляется вместе с системой, поэтому вам придется её установить. Для этого в Ubuntu выполните:
sudo apt install top
Программа позволяет интерактивно просматривать список запущенных процессов Linux. Чтобы вывести список процессов Linux выполните команду:
Колонки, которые выводит программа очень похожи на ps:
- PID — идентификатор процесса;
- USER — имя пользователя, от имени которого выполняется процесс;
- PR — приоритет планировщика, установленный для процесса;
- NI — рекомендуемый приоритет процесса. Это значение можно менять, может не совпадать с реальным приоритетом планировщика;
- VIRT — всё, что находится в памяти, используется или зарезервировано для использования;
- RES — всё, что находится в оперативной памяти и относится к процессу. Расшифровывается как Resident Memory Size, указывается в килобайтах;
- SHR — часть памяти из RES, которую занимают ресурсы, доступные для использования другим процессам. Расшифровывается — Shared Memory Size.
- S — состояние процесса: D — ожидает завершения операции, R — запущен, S — спит, T — остановлен, t — остановлен отладчиком, Z — зомби;
- %CPU — процент использования ресурсов процессора;
- %MEM — процент использования ресурсов оперативной памяти на основе колонки RES;
- TIME — обще процессорное время, которое процесс использовал с момента запуска;
- COMAND — команда, с помощью которой был запущен процесс.
Для того чтобы сделать вывод программы цветным, нажмите Z:
Чтобы вывести дерево процессов Linux нажмите сочетание клавиш Shift+V:
Для отображения потоков нажмите Shift + H:
Если вам недостаточно стандартных полей с информацией о процессах, вы можете нажать Shift + F и выбрать дополнительные поля, которые надо отображать. Для выбора или удаления поля используйте пробел:
3. Утилита htop
Это ещё более мощная утилита для просмотра запущенных процессов в Linux. Пользоваться ею намного удобнее. Здесь поддерживаются не только горячие клавиши, но и управление мышью. А ещё она выводит всё в цвете, поэтому смотреть на данные намного приятнее. Для установки программы выполните:
sudo apt install htop
Для того чтобы запустить выполните в терминале:
Колонки, которые вы увидите в выводе программы, аналогичны тем, что доступны в top, поэтому я не буду рассматривать их здесь отдельно. Для настройки выводимых данных нажмите кнопку F2, затем перейдите в раздел Display Options:
Здесь надо отметить Tree view для вывода списка процессов в виде дерева, а также снять отметки с пунктов Hide threads. для отображения потоков. Здесь есть как потоки пространства пользователя userland process threads, так и потоки пространства ядра — kernel threads. Теперь всё это будет отображаться:
Для того чтобы настроить какие колонки будут отображаться используйте пункт меню Columns:
Тут вы можете выбрать какие колонки отображать, а какие нет, а также можете настроить их порядок.
4. Программа Gnome Monitor
Вы можете смотреть запущенные процессы не только в терминале, но и в графическом интерфейсе. Для этого можно использовать утилиту Gnome Monitor. У неё намного меньше возможностей, по сравнению даже с ps, но зато у неё есть графический интерфейс. Вы можете запустить программу из главного меню системы:
По умолчанию утилита отображает только процессы текущего пользователя. Если вы хотите получить все процессы кликните по иконке бутерброда и выберите Все процессы:
Теперь программа отображает все запущенные процессы Linux в системе. Здесь вы можете выполнять поиск по процессам, завершать их и многое другое. Но потоков и дерева процессов программа не показывает.
5. Утилита atop
Эта программа тоже позволяет посмотреть процессы в Linux , но немного в другом ключе. Утилиту больше интересует сколько тот или иной процесс потребляет ресурсов системы. Утилита даже может показывать потребление процессами пропускной способности диска и сети, но для этого ей необходим специальный патч ядра. Для установки программы в Ubuntu выполните:
sudo apt install atop
Затем запустите её:
Вот основные колонки, которые выводит утилита и их значения:
- PID — идентификатор процесса;
- CID — идентификатор контейнера, используется для контейнеров Docker;
- SYSCPU — время, потраченное процессом на выполнение в пространстве ядра;
- USRCPU — время, потраченное процессом на выполнение в пространстве пользователя;
- VGROW — увеличение использования памяти колонки VIRT за последний период;
- RGROW — увеличение использования памяти колонки RSS за последний период;
- ST — статус процесса, N — новый, E — завершенный, S и С — процесс завершен принудительно с помощью сигнала;
- EXC — код выхода или код сигнала, которым был завершен процесс;
- THR — общее количество потоков в этом процессе;
- S — состояние процесса, аналогично описанному для top;
- CPUNR — номер ядра процессора, на котором запущен основной поток процесса;
- CPU — процент использования ресурсов процессора;
- CMD — команда, которой была запущена программа;
- MEM — процент использования памяти;
Для того чтобы включить отображение потоков процесса нажмите y:
Для просмотра информации о памяти нажмите m, если хотите вернутся обратно, нажмите g:
Выводы
В этой статье мы разобрали самые основные способы посмотреть список процессов в Linux, как видите есть простые способы, но есть и более сложные и информативные. Какими способами вы пользуетесь чаще всего? Напишите в комментариях!
Источник: onecomp.ru
Управление процессами Linux: полное руководство
В операционных системах на базе Linux и Unix запущенный экземпляр команды называется «процессом». Вы можете идентифицировать каждый процесс по его уникальному идентификатору. Linux предоставляет инструменты командной строки для эффективного перечисления, управления и мониторинга этих процессов.
Вы можете использовать эти инструменты для приоритизации каждого процесса, перевода их в фоновый или передний план для эффективного управления системными ресурсами. Проверять Плюсы и минусы использования подсистемы Windows для Linux.
Это руководство по управлению процессами в Linux включает в себя такие инструменты, как ps, kill, renice и другие команды, которые помогут системному администратору управлять процессами и перечислять их.
Список процессов с помощью команды ps.
Самым старым и наиболее широко используемым инструментом командной строки для вывода списка процессов, запущенных в настоящее время в Linux, является ps. Хотя эта команда является еще одним интерактивным, ориентированным на экран способом управления системными процессами и составления списка, ps также отображает дополнительную информацию, такую как ресурсы, потребляемые каждым процессом.
Поскольку существует многопользовательская среда, каждый процесс в Linux связан с отдельной учетной записью пользователя и учетной записью группы. Следовательно, информация об учетной записи вместе с деталями процесса помогает вам получить доступ к системным ресурсам, которые может использовать процесс.
Например, корневые процессы могут получить доступ к большему количеству системных ресурсов, чем обычный пользователь, и именно здесь команда ps помогает системным администраторам.
Следующий вывод является примером списка процессов с именами пользователей, прошедшим временем, связанной памятью и потреблением ЦП:
Вы также можете обратить внимание на столбец STAT, который показывает состояние запущенного процесса. Буква R представляет процесс, который выполняется в данный момент, S представляет процесс, который находится в спящем режиме, а знак плюс указывает на процессы переднего плана.
Вы можете перечислить все процессы текущего пользователя следующим образом:
ps ux | less
Чтобы вывести список процессов для всех пользователей:
ps aux | less
Управление процессами с помощью системного монитора
Системный монитор предоставляет графический способ просмотра процессов и управления ими. Чтобы запустить системный монитор, перейдите в Приложения -> Системный монитор. Перейдите на вкладку «Процессы», чтобы просмотреть все запущенные процессы.
По умолчанию процессы отображаются в алфавитном порядке для текущего пользователя. Вы можете просмотреть список процессов, щелкнув заголовок любого столбца. Кроме того, вы можете нажать на адреса ЦП и памяти, чтобы просмотреть, какие процессы потребляют больше вычислительной мощности и памяти.
Системный монитор позволяет вам управлять процессами по-разному, что означает, что вы можете останавливать, уничтожать, продолжать, завершать и изменять приоритет процесса, просто щелкнув правой кнопкой мыши имя процесса.
Это лучший выбор для начинающих пользователей Linux, которые не умеют работать с инструментами командной строки. Проверять 3 из лучших инструментов системного монитора для Ubuntu.
Работа с фоновыми/передними процессами
Наступает время, когда вам нужно получить доступ к вашей системе Linux по сети, используя только командную строку. Это ограничивает эффективное управление несколькими активными приложениями. Но инструмент оболочки позволяет управлять приложениями, переключая их в фоновый и передний план.
Как запустить фоновый процесс
Чтобы запустить приложение, пока вы все еще находитесь в оболочке, запустите команду, остановите ее и переведите в фоновый режим с помощью Ctrl + Z. Чтобы запустить приложение непосредственно в фоновом режиме, добавьте « /tmp/allusrfiles https://www.dz-techs.com/ru/linux-process-management» target=»_blank»]www.dz-techs.com[/mask_link]