Процессы
Запуск экземпляра программы называется процессом. В Linux идентификатор процесса (PID) используется для представления процесса, который является отличительным для каждого процесса. Есть два типа процессов,
- Фоновые процессы
- Процессы переднего плана
Фоновые процессы
Фоновые процессы запускаются в терминале и запускаются сами по себе. Если вы запустите процесс в терминале, его вывод будет отображаться в окне терминала, и вы можете взаимодействовать с ним, но если вам не нужно взаимодействовать с процессом, вы можете запустить его в фоновом режиме. Если вы хотите запустить процесс в фоновом режиме, просто добавьте знак «&» в конце команды, и он начнет работать в фоновом режиме; это сэкономит ваше время, и вы сможете начать другой процесс. Для вывода списка процессов, работающих в фоновом режиме, используйте команду 'jobs.'Он будет отображать все запущенные процессы в фоновом режиме.
Например, обновление в Linux - это долгий процесс. Это занимает слишком много времени, и если вы хотите заняться другими делами во время обновления системы, используйте фоновую команду.
[электронная почта защищена]: ~ $ sudo apt-get upgrade -y &Он начнет работать в фоновом режиме. А пока вы можете взаимодействовать с другими программами. Вы можете проверить, сколько и какие процессы работают в фоновом режиме, набрав эту команду.
[электронная почта защищена]: ~ $ вакансий[1] + Запуск sudo apt-get upgrade -y &
Процессы переднего плана
Все процессы, которые мы запускаем в терминале, по умолчанию выполняются как процессы переднего плана. Мы можем управлять ими с помощью команд переднего плана и фона.
Вы можете вывести любой фоновый процесс, указанный в заданиях, на передний план, набрав команду 'fg', за которой следует номер фонового процесса.
[электронная почта защищена]: ~ $ fg% 1sudo apt-get upgrade -y
И если вы хотите перевести этот процесс в фоновый режим, введите эту команду.
[электронная почта защищена]: ~ $ bg% 1Вывод списка и управление процессами с помощью команды ps
Листинг процесса с помощью команды ps - один из старейших способов просмотра запущенных процессов терминала. Введите команду ps, чтобы указать, какие процессы запущены, сколько системных ресурсов они используют и кто их запускает.
[адрес электронной почты защищен]: ~ $ ps uUSER 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, commPID 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 -opstree
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 -lpkill
С помощью команды 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 vlclsof (список открытых файлов)
Эта утилита командной строки используется для вывода списка файлов, открытых несколькими процессами. И, как мы знаем, все системы 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, чтобы внести изменения в запущенные процессы; вот список ниже.
- ты нажав «u», вы можете отобразить процесс, запущенный определенным пользователем.
- M нажав «M», вы можете настроить использование ОЗУ, а не ЦП.
- п нажав «P», вы можете отсортировать по загрузке ЦП.
- 1 нажав «1», переключитесь между использованием ЦП, если их более одного.
- р нажав «R», вы можете сделать обратную сортировку вывода.
- час нажав «h», вы можете перейти к справке и нажать любую клавишу, чтобы вернуться.
Обратите внимание, какой процесс потребляет больше памяти или ЦП. Те процессы, которые потребляют больше памяти, могут быть убиты, а те процессы, которые потребляют больше ресурсов ЦП, могут быть переименованы, чтобы придать им меньшее значение для процессора.
Убить процесс вверху: Нажмите 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 + COMMAND7780 джим 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 и т. Д. Некоторые процессы потребляют большую часть использования ЦП и ОЗУ; знание того, как ими управлять, увеличивает скорость и производительность вашей системы и дает вам лучшую среду для более эффективного выполнения любых процессов, которые вы хотите.