Управление процессом

Управление процессами в Ubuntu Linux

Управление процессами в Ubuntu Linux
Управление процессами в Linux - важная тема для изучения и понимания, поскольку это многозадачная операционная система, в которой одновременно выполняется множество процессов. Linux предоставляет множество инструментов для управления процессами, таких как перечисление запущенных процессов, уничтожение процессов, мониторинг использования системы и т. Д. В Linux каждый процесс представлен своим идентификатором процесса (PID). У процесса есть некоторые другие атрибуты, такие как идентификатор пользователя и идентификатор группы, если пользователь или группа запускает процесс. Иногда вам нужно убить процесс или взаимодействовать с ним, поэтому вы должны знать, как управлять этими процессами, чтобы ваша система работала бесперебойно. В Linux процессами можно управлять с помощью таких команд, как ps, pstree, pgrep, pkill, lsof, top, nice, renice и kill, так далее.

Процессы

Запуск экземпляра программы называется процессом. В Linux идентификатор процесса (PID) используется для представления процесса, который является отличительным для каждого процесса. Есть два типа процессов,

Фоновые процессы

Фоновые процессы запускаются в терминале и запускаются сами по себе. Если вы запустите процесс в терминале, его вывод будет отображаться в окне терминала, и вы можете взаимодействовать с ним, но если вам не нужно взаимодействовать с процессом, вы можете запустить его в фоновом режиме. Если вы хотите запустить процесс в фоновом режиме, просто добавьте знак «&» в конце команды, и он начнет работать в фоновом режиме; это сэкономит ваше время, и вы сможете начать другой процесс. Для вывода списка процессов, работающих в фоновом режиме, используйте команду 'jobs.'Он будет отображать все запущенные процессы в фоновом режиме.

Например, обновление в Linux - это долгий процесс. Это занимает слишком много времени, и если вы хотите заняться другими делами во время обновления системы, используйте фоновую команду.

[электронная почта защищена]: ~ $ sudo apt-get upgrade -y &

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

[электронная почта защищена]: ~ $ вакансий
[1] + Запуск sudo apt-get upgrade -y &

Процессы переднего плана

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

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

[электронная почта защищена]: ~ $ fg% 1
sudo apt-get upgrade -y

И если вы хотите перевести этот процесс в фоновый режим, введите эту команду.

[электронная почта защищена]: ~ $ bg% 1

Вывод списка и управление процессами с помощью команды ps

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

[адрес электронной почты защищен]: ~ $ ps u
USER PID% CPU% MEM VSZ RSS TTY STAT ВРЕМЯ НАЧАЛА КОМАНДА
Джим 1562 0.0 0.0 164356 6476 tty2 Ssl + 13:07 0:00 оболочка
Джим 1564 5.2 0.9 881840 78704 tty2 Sl + 3:07 13:13 dauth
Джим 2919 0.0 0.0 11328 4660 очков / 0 Сс 13:08 0:00 bash
Джим 15604 0.0 0.0 11836 3412 очков / 0 R + 17:19 0:00 ps u
… Отрезать…

Столбец пользователя показывает имя пользователя в приведенной выше таблице, а PID показывает идентификатор процесса. Вы можете использовать PID для уничтожения или отправки сигнала уничтожения процессу. % CPU показывает процент процессора, а% MEM показывает использование памяти с произвольным доступом. Чтобы убить процесс, введите.

[электронная почта защищена]: ~ $ kill [идентификатор процесса (PID)]

или же

[электронная почта защищена]: ~ $ kill -9 [идентификатор процесса (PID)]

Используйте команду ps aux, чтобы увидеть все запущенные процессы, и добавьте канал, чтобы увидеть их по порядку.

[электронная почта защищена]: ~ $ ps aux | меньше

Если вы хотите переставить столбцы, вы можете сделать это, добавив флаг для перечисления всех процессов и для указания столбцов по ключевым словам в команде ps.

[электронная почта защищена]: ~ $ ps -eo pid, user, uid,% cpu,% mem, vsz, rss, comm
PID USER UID% CPU% MEM VSZ RSS КОМАНДА
1 корень 0 0.1 0.1 167848 11684 систем
3032 джим 1000 16.5 4.7 21744776 386524 хром
… Отрезать…

Параметры для команды ps.

Параметр u используется для вывода списка процессов пользователями.

[адрес электронной почты защищен]: ~ $ ps u

Параметр f используется для отображения полного списка.

[адрес электронной почты защищен]: ~ $ ps f

опция x используется для отображения информации о процессе без терминала.

[электронная почта защищена]: ~ $ ps x

Опция e используется для отображения расширенной информации.

[адрес электронной почты защищен]: ~ $ ps e

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

[электронная почта защищена]: ~ $ ps a

опция v используется для отображения формата виртуальной памяти.

[электронная почта защищена]: ~ $ ps v

Флаги для команды ps.

-Флаг e используется для просмотра каждого процесса в системе.

[электронная почта защищена]: ~ $ ps -e

-Флаг u используется для просмотра процессов, запущенных как root.

[электронная почта защищена]: ~ $ ps -u

-Флаг f используется для полного списка процессов.

[электронная почта защищена]: ~ $ ps -f

-o флаг используется для перечисления процессов в нужном столбце.

[электронная почта защищена]: ~ $ ps -o
pstree

pstree - еще одна команда для вывода списка процессов; он показывает вывод в виде дерева.

[электронная почта защищена]: ~ $ pstree

Параметры для команды pstree

-п используется для сортировки процессов по PID.

[электронная почта защищена]: ~ $ pstree -n

-ЧАС используется для выделения процессов.

[электронная почта защищена]: ~ $ pstree -H [PID]
[электронная почта защищена]: ~ $ pstree -H 6457

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

[электронная почта защищена]: ~ $ pstree -a

-грамм используется для отображения процессов по идентификатору группы.

[электронная почта защищена]: ~ $ pstree -g

-s используется для посева дерева или определенного процесса.

[электронная почта защищена]: ~ $ pstree -s [PID]
[электронная почта защищена]: ~ $ pstree -s 6457

[имя пользователя] используется для отображения процессов, принадлежащих пользователю.

[электронная почта защищена]: ~ $ pstree [userName]
[электронная почта защищена]: ~ $ pstree jim
pgrep

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

[электронная почта защищена]: ~ $ Pgrep [опция] [шаблон]
[электронная почта защищена]: ~ $ pgrep -u jim chrome
Параметры для команды pgrep

используется для поиска без учета регистра

[электронная почта защищена]: ~ $ Pgrep -i firefox

-d используется для разграничения вывода

[электронная почта защищена]: ~ $ Pgrep -u jim -d:

-ты используется для поиска процесса, принадлежащего пользователю

[электронная почта защищена]: ~ $ Pgrep -u jim

используется для перечисления процессов вместе с их командами

[электронная почта защищена]: ~ $ Pgrep -u jim -a

-c используется для отображения количества совпадающих процессов

[электронная почта защищена]: ~ $ Pgrep -c -u jim

используется для перечисления процессов и их названия

[электронная почта защищена]: ~ $ Pgrep -u jim -l
pkill

С помощью команды pkill вы можете отправить сигнал запущенному процессу на основе определенных критериев. Вы можете использовать полное название или аббревиатуру процесса для поиска, либо по имени пользователя, либо по другим атрибутам. Команда pgrep следует следующему шаблону.

[электронная почта защищена]: ~ $ Pkill [Параметры] [Шаблоны]
[электронная почта защищена]: ~ $ Pkill -9 хром
Параметры для команды pkill

-сигнал используется для отправки сигнала e.грамм. SIGKILL, SIGTERM и т. Д.

[электронная почта защищена]: ~ $ Pkill --signal SIGTERM vscode

-HUP используется для перезагрузки процесса

[электронная почта защищена]: ~ $ Pkill -HUP syslogd

используется для уничтожения процессов на основе полной командной строки.

[электронная почта защищена]: ~ $ Pkill -f «ping 7.7.7.7 ”

-ты используется для уничтожения всех процессов, принадлежащих пользователю.

[электронная почта защищена]: ~ $ Pkill -u jim

используется для нечувствительного к регистру уничтожения процесса с помощью pkill.

[электронная почта защищена]: ~ $ Pkill -i firefox

-9 используется для отправки сигнала уничтожения.

[электронная почта защищена]: ~ $ Pkill -9 chrome

-15 используется для отправки сигнала завершения.

[электронная почта защищена]: ~ $ Pkill -15 vlc
lsof (список открытых файлов)

Эта утилита командной строки используется для вывода списка файлов, открытых несколькими процессами. И, как мы знаем, все системы UNIX / Linux распознают все как файл, поэтому удобно использовать команду lsof для вывода списка всех открытых файлов.

[электронная почта защищена]: ~ $ lsof

В приведенной выше таблице команды lsof FD представляет описание файла, cwd представляет текущий рабочий каталог, txt означает текстовый файл, mem означает файлы с отображением в память, mmap означает устройства с отображением в памяти, REG представляет собой обычный файл, DIR представляет каталог, rtd означает корневой каталог. Есть и другие параметры, которые вы можете использовать с командой lsof.

Параметры для команды lsof.

-c используется для вывода списка открытых файлов по имени процесса.

[электронная почта защищена]: ~ $ lsof -c chrome

-ты используется для вывода списка открытых файлов пользователем.

[электронная почта защищена]: ~ $ lsof -u jim

используется для вывода списка процессов, выполняющихся на порту.

[электронная почта защищена]: ~ $ lsof -i

+D используется для вывода списка открытых файлов в каталоге.

[электронная почта защищена]: ~ $ lsof + D / home /

-п используется для вывода списка открытых файлов процессом.

[электронная почта защищена]: ~ $ lsof -p 1342

Листинг и управление процессом с помощью команды top

С помощью команды top вы можете в режиме реального времени отображать запущенные системные процессы. Он отображает процессы в зависимости от использования ЦП. Вы можете отсортировать столбец по своему усмотрению. Команда top также предоставляет некоторую информацию о вашей системе, например, как долго система работает или сколько пользователей подключено к системе и сколько процессов запущено, сколько CPU и RAM используется, а также список каждого из них. процесс.

Введите команду top, чтобы вывести список запущенных процессов.

[электронная почта защищена]: ~ $ наверх
Задачи: всего 291, 1 запущен, 290 спит, 0 остановлен, 0 зомби
% ЦП: 2.3us, 0.3sy, 0.0ni, 97.0id, 0.3wa, 0.0hi, 0.0si, 0.0-е
МиБ Память: 7880.6 общ., 1259.9 бесплатно, 3176 б / у, 3444.4 баффа / кеш
МиБ подкачки: 2048.Всего 0, 2048.0 бесплатно, 0.0 б / у. 4091.8 avail Mem
PID ПОЛЬЗОВАТЕЛЬ PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND
3241 джим 20 0 20.7g 33512 10082 S 1.7 4.2 0:54.24 хром
3327 jim 20 0 4698084 249156 86456 S 1.3 3.1 1:42.64 хром
2920 джим 20 0 955400 410868 14372 S 1.0 5.1 7:51.04 хром
3423 jim 20 0 4721584 198500 10106 S 1.0 2.5 0:49.00 хром
3030 джим 20 0 458740 114044 66248 S 0.7 1.4 3:00.47 хром
3937 jim 20 0 4610540 104908 72292 S 0.7 1.3 0:05.91 хром
1603 джим 20 0 825608 67532 40416 S 0.3 0.8 3:13.52 Xorg
1756 джим 20 0 4154828 257056 10060 S 0.3 3.2 5:53.31 гномов+
1898 Джим 20 0 289096 29284 5668 Ю 0.3 0.4 1:06.28 фусума
3027 jim 20 0 587580 14304 75960 S 0.3 1.8 9:43.59 хром
3388 джим 20 0 4674192 156208 85032 S 0.3 1.9 0:13.91 хром
3409 джим 20 0 4642180 140020 87304 S 0.3 1.7 0:15.36 хром
3441 Джим 20 0 16.5g 156396 89700 S 0.3 1.9 0:25.70 хром
… .вырезать… .

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

Обратите внимание, какой процесс потребляет больше памяти или ЦП. Те процессы, которые потребляют больше памяти, могут быть убиты, а те процессы, которые потребляют больше ресурсов ЦП, могут быть переименованы, чтобы придать им меньшее значение для процессора.

Убить процесс вверху: Нажмите k и напишите идентификатор процесса, который хотите убить. Затем введите 15 или 9, чтобы убить как обычно, так и немедленно; вы также можете убить процесс с помощью команды kill или killall.

Renice процесс вверху: Нажмите р и напишите PID процесса, который вы хотите отремонтировать. Вам будет предложено ввести PID процесса, а затем значение nicing, которое вы хотите присвоить этому процессу, от -19 до 20 (-19 означает наивысшую важность, а 20 означает наименьшую важность).

Список и управление процессами с помощью системного монитора

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

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

Убиваем процесс с помощью kill и killall

kill, а команда killall используется для убийства / завершения запущенного процесса. Эти команды также могут использоваться для отправки действительного сигнала запущенному процессу, например, для указания процессу продолжить, завершить или перечитать файлы конфигурации и т. Д. Сигналы могут быть записаны как числами, так и по имени. Ниже приведены некоторые часто используемые сигналы.

Номер сигнала Описание

SIGHUP 1 Обнаруживает сигнал зависания на управляющем терминале.
SIGINT 2 Интерпретируется с клавиатуры.
SIGQUIT 3 Выйти с клавиатуры.
SIGILL 4 Незаконные инструкции.
SIGTRAP 5 Используется для отслеживания трапеции.
SIGABRT 6 используется для отмены сигнала от прерывания (3).
SIGKILL 9 Используется для отправки сигнала уничтожения.
SIGTERM 15 Используется для отправки сигнала завершения.
SIGCONT 19,18,25 Используется для продолжения процесса, если он остановлен.
SIGSTOP 17,19,23 Используется для остановки процессов.

В разных операционных системах Unix / Linux используются разные значения SIGCONT и SIGSTOP. Подробная информация о сигналах типа man 7 signal terminal.

Использование команды kill для отправки сигнала для обработки по PID.

Обратите внимание на процесс, которому вы хотите отправить сигнал уничтожения. Вы можете найти идентификатор процесса (PID) с помощью ps или верхней команды.

PID ПОЛЬЗОВАТЕЛЬ PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND
7780 джим 20 0 12596 4364 3460 R 33.3 3.2 13:54:12 наверх

Верхний процесс потребляет 33.3% ЦП. Если вы хотите убить этот процесс, чтобы сэкономить на использовании ЦП, вот несколько способов завершить этот процесс с помощью команды kill.

[электронная почта защищена]: ~ $ kill 7780
[электронная почта защищена]: ~ $ kill -15 7780 или $ kill -SIGTERM 7780
[электронная почта защищена]: ~ $ kill -9 7780 или $ kill -SIGKILL 7780

Использование команды killall для отправки сигналов процессу по имени.

С помощью команды killall вам не нужно искать идентификатор процесса; вы можете отправить сигнал об уничтожении процессу по имени, а не по идентификатору процесса. Он также может убить больше процессов, чем вы хотите, если вы не будете осторожны, e.грамм., «Killall chrome» убьет все процессы Chrome, включая те, которые вы не хотите убивать. Иногда бывает полезно убить одноименные процессы.

Как и в случае с командой kill, вы можете вводить сигналы по имени или по номеру в команде killall. Завершите любой запущенный процесс командой killall; вам нужно только ввести его имя и сигнал, который вы хотите отправить. е.грамм., отправьте процесс сигнала уничтожения firefox с помощью команды killall, напишите следующую команду.

[электронная почта защищена]: ~ $ killall -9 firefox

или же

[электронная почта защищена]: ~ $ killall SIGKILL chrome

Изменение приоритета процесса с помощью nice и renice

Каждый процесс в вашей системе Linux имеет отличную ценность: от -19 до 20. Было решено, какой процесс получит больше доступа к ЦП в системе. Чем ниже значение nice, тем больший доступ процесс имеет к процессу ЦП. Как -16 хороших значений имеют больший доступ к ЦП, чем 18 хороших значений. Только пользователь с правами root может присвоить отрицательное значение nice. Обычный пользователь может присвоить значение "nice" только от 0 до 19. Обычный пользователь может назначать только более высокие значения nice и собственные процессы. Пользователь root может установить любое хорошее значение для любого процесса.

Если вы хотите сделать процесс более доступным для использования ЦП, присвоив значение nice, введите следующую команду.

[электронная почта защищена]: ~ $ nice +3 хром

И возродить процесс

[электронная почта защищена]: ~ $ renice -n -6 3612

Заключение

Вот руководство по управлению вашей системой Linux с помощью ps, top, lsof, pstree, pkilll, kill, killall, nice, renice и т. Д. Некоторые процессы потребляют большую часть использования ЦП и ОЗУ; знание того, как ими управлять, увеличивает скорость и производительность вашей системы и дает вам лучшую среду для более эффективного выполнения любых процессов, которые вы хотите.

Игры HD Remastered для Linux, ранее не выпускавшиеся для Linux
Многие разработчики и издатели игр придумывают HD-ремастеры старых игр, чтобы продлить жизнь франшизы, порадовать фанатов, требующих совместимости с с...
Как использовать AutoKey для автоматизации игр под Linux
AutoKey - это утилита автоматизации рабочего стола для Linux и X11, запрограммированная на Python 3, GTK и Qt. Используя его функции сценариев и MACRO...
Как показать счетчик FPS в играх для Linux
Игры для Linux получили серьезный толчок, когда Valve объявила о поддержке Linux для клиента Steam и своих игр в 2012 году. С тех пор многие игры AAA ...