Как посмотреть под каким пользователем запущена служба ubuntu
Список процессов
Вывести на экран список текущих процессов, запущенных пользователем, можно командой:
Чтобы посмотреть список всех процессов с дополнительной информацией, вводим:
Мы увидим, примерно, следующее:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 661 0.0 0.0 4072 8 tty1 Ss+ Jul03 0:00 /sbin/mingetty
root 662 0.0 0.0 4072 8 tty2 Ss+ Jul03 0:00 /sbin/mingetty
root 16355 0.0 0.0 171636 3308 pts/0 S 15:46 0:00 sudo su
root 16366 0.0 0.0 140896 1556 pts/0 S 15:46 0:00 su
root 16368 0.0 0.0 108316 1944 pts/0 S 15:46 0:00 bash
root 18830 0.0 0.0 110244 1172 pts/0 R+ 16:20 0:00 ps u
- USER — учетная запись пользователя, от которой запущен процесс.
- PID — идентификатор процесса.
- %CPU — потребление процессорного времени в процентном эквиваленте.
- %MEM — использование памяти в процентах.
- VSZ — Virtual Set Size. Виртуальный размер процесса (в килобайтах).
- RSS — Resident Set Size. Размер резидентного набора (количество 1K-страниц в памяти).
- TTY — терминал, из под которого был запущен процесс.
- STAT — текущее состояние процесса. Могут принимать значения:
- R — выполнимый процесс;
- S — спящий;
- D — в состоянии подкачки на диске;
- T — остановлен;
- Z — зомби.
- W — не имеет резидентных страниц;
- < — высоко-приоритетный;
- N — низко-приоритетный;
- L — имеет страницы, заблокированные в памяти.
- START — дата запуска процесса.
- TIME — время запуска процесса.
- COMMAND — команда, запустившая процесс.
Ключи
Ключ | Описание |
---|---|
-A | Все процессы. |
-a | Запущенные в текущем терминале, кроме главных системных. |
-d | Все, кроме главных системных процессов сеанса. |
-e | Все процессы. |
f | Показать дерево процессов с родителями. |
T | Все на конкретном терминале. |
a | Все, связанные с текущим терминалом и терминалами других пользователей. |
r | Список только работающих процессов. |
x | Отсоединённые от терминала. |
u | Показать пользователей, запустивших процесс. |
Примеры
Поиск процесса с помощью grep:
ps aux | grep apache
Убить процесс
Останавливаем процесс по его PID:
Если процесс не завершается, убиваем его принудительно:
Остановить все процессы с именем nginx:
Как и в случае с kill, можно это сделать принудительно:
killall -9 nginx
Ищем процесс по имени, извлекаем его PID и завершаем его:
* обратите внимание, что запрос может вывести несколько процессов, которые будут попадать под критерии поиска — в таком случае, они будут завершены все.
Подробная информация о процессе
Для каждого процесса создается каталог по пути /proc/<PID>, в котором создаются папки и файлы с описанием процесса.
Примеры использования /proc/<PID>
Подробный вывод статуса:
Адрес в ячейках оперативной памяти, которые занял процесс:
Команда, которой был запущен процесс:
Символьная ссылка на рабочий каталог процесса:
Символьная ссылка на исполняемый файл, запустивший процесс:
Увидеть ссылки на дескрипторы открытых файлов, которые затрагивает процесс:
Потребление ресурсов процессами
Для просмотра статистики потребления ресурсов используем утилиту top:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
21059 root 20 0 157884 2280 1496 R 18,8 0,1 0:00.03 top
1 root 20 0 190996 2964 1652 S 0,0 0,1 6:49.99 systemd
2 root 20 0 0 0 0 S 0,0 0,0 0:01.78 kthreadd
3 root 20 0 0 0 0 S 0,0 0,0 0:24.75 ksoftirqd/0
5 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 kworker/0:0H
Я хочу защитить каталог загрузки файлов на моем сервере, как красиво описано здесь, но у меня есть одна проблема, прежде чем я смогу следовать этим инструкциям. Я не знаю, как работает пользователь Apache.
Итак, мой вопрос (есть):
почему этот вопрос был опущен? Да, оно было обновлено, поскольку на него уже дан ответ, но я не вижу необходимости в понижении голосов? Это очень хороший вопрос? Возможно, наш голосующий вниз хотел бы добавить конструктивный комментарий по этому поводу? Возможно, вы захотите опубликовать это обновление как ответ и принять его, так как вы находитесь в очереди без ответа. +1 за то, что им сообщили в StackOverflow; некоторые пользователи, кажется, настаивают на Следующий вопрос: что делать, потому что его один из двух пользователей, как root и www-data . Как вы даете «правильной» группе Apache разрешение на доступ к чему-либо?Обычно вам не нужно менять пользователя по умолчанию, «nobody» или «apache» обычно хорошие пользователи. Пока это не "корень";)
edit: более точная команда для перехвата двоичных файлов apache
Эта команда показывает мне список вещей, большинство из которых apache кроме 1 root . У меня есть 3 процесса ( /usr/sbin/apache2 -k start ), один пользователь, root а два других www-data . Должен ли я быть обеспокоен? @zundi, служба запускается с правами root для выполнения таких вещей, как привязка к зарезервированным портам (например, 80 и 443). Затем он запускается независимо от заданного количества процессов для выполнения работы веб-сервера и выполнения любых других задач в соответствии с заданными пользователями. Таким образом, запросы обрабатываются непривилегированными процессами. Вы заметите, что родительский идентификатор (PPID) одинаков для всех других процессов. Эта идея с PID для этого одного процесса, работающего от имени пользователя root.Вы можете попробовать следующую команду:
Мне нравится этот ответ, лучше (более общий), чем самый одобренный ответ. СпасибоИспользуйте apachectl -S , что покажет что-то пользователя и группы Apache, что-то вроде этого:
Спасибо, на моем Mac я вижу, что Apache работает как «_www». Это хороший ответ, потому что это одна команда, которая расскажет вам намного больше о вашем работающем веб-сервере и представит его всесторонне.Видно быть правдой на Ubuntu 13.10 Saucy.
От Ларса Нудена на вышеуказанном форуме.
Чтобы убедиться, что [пользователь] действительно установлен, проверьте фактические файлы конфигурации. Файл зонтика apache2.conf будет выглядеть примерно так:
Это ссылка на переменные среды, установленные в /etc/apache2/envvars . mod_suexec также позволяет запускать скрипты от имени другого пользователя и группы.
Чтобы найти любые виртуальные хосты, которые могут использовать альтернативных пользователей, группы или обоих, проверьте конфигурации.
Я знаю, что это старый пост, но он все еще указан как оставшийся без ответа, поэтому я сделаю предложение. Если вы не можете определить, какой пользователь или группа Apache работает, возможно, попробуйте открыть файл httpd.conf. Там должна быть запись для "Пользователь" и "Группа". Вы можете не только увидеть, какой пользователь Apache должен работать, но и изменить его, если почувствуете необходимость в этом.
Вы можете включить строку кода в ваш скрипт PHP:
Обратите внимание, это показывает пользователя, под которым работает PHP, а не пользователя Apache. Если вы используете mod_php, это то же самое, но если, как сейчас очень часто, вы используете что-то другое (например, php_fpm), они могут легко отличаться.Этот код - более или менее - в алфавитном порядке перечисляет всех пользователей без полномочий root, которые запускают процессы, содержащие apache (или чье имя содержит apache )
В этот список, вероятно, войдут пользователи, которые запускают такие процессы, как «grep apache», например, «хорошо себя».- Чтобы узнать пользователя, вы можете просто использовать ps aux | grep apache его во время работы.
- Вам не нужно, но если Apache работает от имени пользователя root, возникают проблемы с безопасностью.
- В-третьих, изменение пользователя Apache изменит его права на доступ к некоторым каталогам. Вы должны убедиться, что / var / www (или там, где у вас есть ваши сайты) доступны для нового пользователя и группы. В системах, на которые я смотрел, apache всегда устанавливался с использованием apache: apache (или аналогичного) в качестве пользователя и группы, поэтому, вероятно, он уже должен быть установлен таким образом.
ПРИМЕЧАНИЕ. Это тот же ответ, который я дал на Stackoverflow .
Или вы можете проверить конфигурационный файл apache и найти владельца и группу.
Как предложил Нойо здесь :
Получить пользователя (командная строка Ubuntu): echo $ APACHE_USERАльтернативный подход, по крайней мере для дистрибутивов на основе Debian / Ubuntu, заключается в использовании того же метода, который Apache использует для установки своих пользователей и групп: source /etc/apache2/envvars !
Если вы хотите получить фантазию, вы можете подавить ошибки, если файл не найден, и указать значение по умолчанию:
Я обнаружил, что большинство предлагаемых здесь решений зависят от системы или конфигурации (в частности, большинство решений вообще не работают на MacOS), а некоторые полагаются на то, что пользователь знает, где находятся файлы конфигурации Apache. ,
Поэтому я немного обманываю и позволяю Apache саму сказать мне, что к чему.
Простая команда apachectl -S расскажет вам, что вам нужно знать о работающем экземпляре Apache, и его результаты могут быть проанализированы довольно легко. Вот мое решение, которое я использую в верхней части нескольких bash сценариев, чтобы определить множество вещей, которые могут мне понадобиться в любой момент времени .
В операционной системе linux, так же как и в Windows, кроме обычных программ, которые могут взаимодействовать с пользователем есть еще один вид программ. Это работающие в фоне службы. Важность служб тяжело переоценить, они следят за состоянием системы, обеспечивают автоматическое подключение внешних устройств и сети, позволяют процессам взаимодействовать с оборудованием (dbus), а также в виде служб реализованы различные веб-серверы и серверы баз данных. В отличие от пользовательских программ, службы выполняются в фоне, и пользователь не имеет к ним прямого доступа. Пользователь еще не вошел в систему, только началась загрузка а основные службы уже запущенны и работают.
В этой статье мы рассмотрим управление службами Linux. Мы не будем трогать уже устаревшие системы, такие как SysVinit, сосредоточимся только на Systemd. Вы узнаете, как посмотреть запущенные службы linux, а также останавливать и запускать их самому.
Немного теории
Но потом на смену этому методу пришла новая модель и система инициализации systemd. Система инициализации запускается сразу после загрузки ядра и начинает инициализировать службы, теперь появилась возможность параллельной инициализации, а также зависимостей между службами. Таким образом, теперь можно определить сложное дерево порядка запуска служб. Но мы не будем вникать в подробности создания служб, нас интересует только сам процесс запуска. После запуска systemd собирает весь вывод службы в лог, и следит за ее работой, если служба аварийно завершилась, то автоматически ее перезапускает.
Служба в Systemd описывается файлом юнита, в нем описано что с ней нужно делать и как себя вести. Существуют такие типы служб:
- service - обычная служба, программа
- target - группа служб
- automount - точка автоматического монтирования
- device - файл устройства, генерируется на этапе загрузки
- mount - точка монтирования
- path - файл или папка
- scope - процесс
- slice - группа системных служб systemd
- snapshot - сохраненное состояние запущенных служб
- socket - сокет для взаимодействия между процессами.
Нас будут интересовать только service, и совсем немного target, но мы рассмотрели все остальные, чтобы вы смогли взглянуть на картину немного шире. Основы рассмотрели, теперь будет настройка служб LInux.
Утилита systemctl
В Systemd есть специальный инструмент для управления службами в Linux - systemctl. Эта утилита позволяет делать очень много вещей, начиная от перезапуска службы linux и проверки ее состояния, до анализа эффективности загрузки службы. Синтаксис у утилиты такой:
$ systemctl опции команда служба служба.
Опции настраивают поведение программы, подробность вывода, команда - указывает что нужно сделать со службой, а служба, это та самая служба, которой мы собираемся управлять. В некоторых случаях утилита может использоваться без указания команды и службы.
Рассмотрим все по порядку. Опции очень сильно зависят от команд, поэтому рассмотрим их позже, а пока пройдемся по командах:
А теперь основные опции:
Как видите, опции будут мало полезны и лучше обратить больше внимания на команды, с помощью них выполняются все действия.
Управление службами Linux
Теперь, когда вы уже знаете все основы, команды и параметры можно переходить к делу. Со всеми остальными тонкостями разберемся по пути. Сначала давайте посмотрим запущенные службы linux. Нас будут интересовать только программы, а не все эти дополнительные компоненты, поэтому воспользуемся опцией type:
systemctl list-units --type service
Команда отобразила все службы, которые известны systemd, они сейчас запущены или были запущены. Программа не пересматривает все файлы, поэтому будут показаны только те службы, к которым уже обращались. Состояние loaded - означает, что конфигурационный файл был успешно загружен, следующая колонка active - служба была запущена, а running или exited значит выполняется ли сейчас служба или она успешно завершила свою работу. Листать список можно кнопками вверх/вниз.
Следующая команда позволяет получить список служб linux, в который входят все службы, даже не запущенные, те, которые не запускались, но известны systemd, но это еще не все службы в системе:
systemctl list-units --type service -all
Дальше больше. Вы можете отсортировать список служб systemctl по состоянию. Например, только выполняющиеся:
systemctl list-units --type service --state running
Или те, которые завершились с ошибкой:
systemctl list-units --type service --state failed
Для фильтрации можно брать любой показатель состояния из любой колонки. Другой командой мы можем посмотреть все файлы конфигурации служб на диске. Тут не будем фильтровать по типу, пусть программа покажет все:
Теперь отфильтруем только службы linux:
systemctl list-unit-files --type service
Здесь вы тоже можете использовать фильтры по состоянию. Теперь вы знаете как посмотреть запущенные службы linux, идем дальше.
Чтобы запустить службу используется команда start, например:
sudo systemctl start application.service
Причем расширение service можно опустить, оно и так подставляется по умолчанию. Если запуск прошел хорошо, программа ничего не выведет.
Остановить службу linux можно командой:
sudo systemctl stop application
Посмотреть состояние службы позволяет команда status:
sudo systemctl status application
Здесь вы можете видеть, состояние running, exited, dead, failed и т д. А также несколько последних строчек вывода программы, которые очень помогут решить проблему с запуском если она возникнет.
Автозагрузка служб в systemd
Как вы знаете, systemd позволяет автоматически загружать службы при запуске системы по мере их надобности. Команда list-unit-files показывает добавлена ли служба в автозагрузку.
Вообще, здесь может быть несколько состояний - enabled - в автозагрузке, disabled - автозагрузка отключена, masked - служба скрыта и static - значит что служба в автозагрузке, но вы не можете ее отключить.
Поэтому чтобы получить список служб linux, запускаемых автоматически достаточно отфильтровать ее вывод по состоянию:
systemctl list-unit-files --state enabled
Все службы, запускаемые по умолчанию. Можете также посмотреть службы static. Чтобы добавить службу в автозагрузку linux используйте команду enable:
sudo systemctl enable application
А для того чтобы убрать ее из автозагрузки:
sudo systemctl disable applciation
Также, вы можете посмотреть разрешена ли сейчас автозагрзука для службы:
sudo systemctl is-enabled application
Утилита просто выведет состояние enabled, disabled или static.
Выводы
Теперь настройка служб Linux не вызовет у вас проблем. Много чего мы упустили, systemd - очень большая, сложная и многофункциональная система, которую не охватить в одной статье. Но и также очень сложно понять. Но я думаю, что все, что касается управления службами Linux мы разобрали. Если у вас остались вопросы, спрашивайте в комментариях!
Я только что обновился с сервера Ubuntu 14 до версии 15. У меня возникли проблемы с запуском скрипта выскочки после обновления и прочитал, что systemd является новым значением по умолчанию. Я далек от эксперта по Linux, поэтому, пожалуйста, пройдите на меня: -)
Вот что мой скрипт upstart был раньше:
Основываясь на выскочке на страницу systemd wiki , я использовал таблицы, представленные там, чтобы сопоставлять вещи так близко, как я мог в моем новый системный файл systemd:
Этот файл находится в /home/robert/.config/systemd/user/nzbget.service . Чтобы запустить службу вручную, я выполнял:
Это отлично работает. Однако, когда я выхожу из сеанса SSH, служба отключается. Кроме того, он не запускается при загрузке или входе в систему. Я хочу, чтобы он вел себя так же, как и в качестве услуги upstart: я хочу, чтобы он запускался при загрузке, запускался постоянно и как конкретный пользователь.
Что мне нужно сделать, чтобы получить эту конфигурацию?
2 ответа
Первая проблема
Вы можете указать директивы User= и Group= в разделе [Service] файла устройства.
Вторая проблема
Чтобы запустить службу при загрузке, вы не должны помещать ее в свою домашнюю папку. Вместо этого поставьте его под /etc/systemd/system/ . Это папка, предназначенная для использования системным администратором (т. Е. Вы) для добавления новых общесистемных служб.
- /usr/lib/systemd/system/ предназначен для пакетов, которые хотят установить единичные файлы, хотя в Debian и Ubuntu на самом деле папка /lib/systemd/system/ потому что различные папки bin и lib еще не объединены в унифицированный префикс /usr/ .
- /usr/local/systemd/system/ предназначен для установки модулей локально скомпилированными пакетами.
Тестирование устройства
После того, как файл устройства находится в соответствующем месте, вы можете попробовать запустить устройство немедленно, набрав systemctl start <UNIT_FILENAME> , как обычно. Он должен работать без ввода полного пути устройства. Расширение также не нужно указывать, если это .service .
Включение устройства
Прежде чем вы сможете включить свой блок, вам нужно добавить раздел [Install] , под которым вы должны добавить директиву WantedBy=multi-user.target . Эта директива определяет этап процесса загрузки, во время которого должна запускаться служба (если она была включена). multi-user.target подходит для большинства служб.
После того, как эта информация будет добавлена, вы можете использовать systemctl enable <UNIT_FILENAME> , который позволяет устройству, что делает systemd с этого момента автоматически запускать его во время загрузки на указанном этапе.
Вам может быть интересно использовать функциональные возможности systemd для пользователя. Он включен с помощью loginctl enable-linger USERNAME .
Он вызывает отдельный диспетчер служб для соответствующего пользователя, который запускается при загрузке, поэтому ваши пользовательские единицы в
/.config/systemd/user будут отобраны и обработаны при загрузке и завершении работы в зависимости от конфигурации вашего сервиса.
Вы также можете использовать systemctl --user для управления и настройки служб (сервисов), которые будут работать в диспетчере служб вашего пользователя, а не в системе.
Каждое приложение, которое вы используете, или команда, которую вы запускаете в своей системе Linux, создает процесс или задачу. Как системный администратор, вам нужно будет управлять процессами для обеспечения оптимальной производительности системы.
В этом руководстве мы рассмотрим различные команды Linux, которые вы можете использовать для составления списка текущих запущенных процессов и управления ими.
- Система под управлением Linux
- Учетная запись с привилегиями root или sudo
- Доступ к окну терминала / командной строке
Процессы в Linux
Процессы в Linux запускаются каждый раз, когда вы запускаете приложение или выполняете команду. В то время как каждая команда создает один процесс, приложения создают и запускают несколько процессов для разных задач.
По умолчанию каждый новый процесс запускается как foreground процесс. Это означает, что он должен завершиться, прежде чем можно будет начать новый процесс. Запущенные процессы в background позволяет одновременно выполнять другие задачи.
Примечание: Узнайте больше о завершении процессов Linux в нашем руководстве по уничтожению процессов в Linux.
Список запущенных процессов в Linux
Чтобы перечислить запущенные в данный момент процессы, используйте ps , top , htop , and atop команды Linux. Вы также можете комбинировать ps команда с pgrep команда для идентификации отдельных процессов.
Список запущенных процессов в Linux с помощью команды ps
В ps Команда Linux создает снимок запущенных в данный момент процессов. В отличие от других команд в этом списке, ps представляет вывод в виде статического списка, не обновляемого в реальном времени.
В ps команда использует следующий синтаксис:
Часто используемый ps параметры команды включают:
- а : Список всех разрушающих процессов для всех пользователей.
- -A, -e; Список всех процессов в системе.
- -а : Список всех процессов, кроме лидеров сеанса (случаи, когда идентификатор процесса совпадает с идентификатором сеанса) и процессов, не связанных с терминалом.
- -d : Перечислить все процессы, кроме лидеров сеанса.
- --deselect, -N : Перечислить все процессы, кроме тех, которые удовлетворяют определенному пользователем условию.
- f : Отображает иерархию процессов в виде ASCII-арта.
- -j : Отображение вывода в формате заданий.
- T : Список всех процессов, связанных с этим терминалом.
- r : Список только запущенных процессов.
- u : Разверните вывод, чтобы включить дополнительную информацию, например, об использовании ЦП и памяти.
- -u : Определите пользователя, процессы которого вы хотите перечислить.
- x : Включить процессы без TTY.
Примечание: Ознакомьтесь с полным списком ps параметры команды с помощью man ps.
Запуск ps команда без каких-либо параметров дает результат, подобный следующему:
Вывод по умолчанию включает следующие категории:
- PID: Идентификационный номер процесса.
- TTY: Тип терминала, на котором выполняется процесс.
- TIME: Общая загрузка ЦП.
- CMD: Имя команды, запустившей процесс.
Используя комбинацию a , u , а также x options приводит к более подробному выводу:
Новые категории расширенного вывода включают:
- USER: Имя пользователя, запустившего процесс.
- %CPU: Процент использования ЦП.
- % MEM: Процент использования памяти.
- VSZ: Общая виртуальная память, используемая процессом, в килобайтах.
- RSS: Размер резидентного набора, часть ОЗУ, занятая процессом.
- STAT: Текущее состояние процесса.
- START: Время начала процесса.
Чтобы отобразить запущенные процессы в иерархическом виде, введите:
Отфильтруйте список процессов по пользователю с помощью:
Например, отображение списка процессов, запущенных пользователем с именем phoenixnap:
Список запущенных процессов в Linux с помощью команды top
В top команда отображает список запущенных процессов в порядке уменьшения загрузки ЦП. Это означает, что наиболее ресурсоемкие процессы появляются вверху списка:
Выход top команды обновляются в реальном времени с трехсекундной частотой обновления по умолчанию. В top Выходные данные команды содержат следующие категории:
В то время как top команда запущена, используйте следующие параметры для взаимодействия с ней или изменения формата вывода:
- c: Отображение абсолютного пути процесса.
- d: Изменить частоту обновления выходных данных на заданное пользователем значение (в секундах).
- H: Отобразить окно справки.
- k: Убить процесс, указав PID.
- M: Отсортировать список по использованию памяти.
- N: Сортировать список по PID.
- r: Изменить хорошее значение (приоритет) процесса, указав PID.
- z: Изменить выходной цвет, чтобы выделить запущенные процессы.
- q: Выйти из командного интерфейса.
Примечание: Варианты взаимодействия с top команда чувствительна к регистру. Убедитесь, что вы сначала отключили Caps Lock.
Список запущенных процессов в Linux с помощью команды htop
В htop команда предлагает тот же результат, что и top команда, но в более легком для понимания и удобном для пользователя виде.
Поскольку большинство дистрибутивов Linux не включают эту команду, установите ее с помощью:
С помощью htop команда предоставляет следующий вывод:
Используйте следующие клавиши для взаимодействия с htop команда:
- Направленные клавиши: Прокрутка списка процессов по вертикали и горизонтали.
- F1: Открыть окно справки.
- F2: Откройте команду настройки htop.
- F3: Поиск процесса по имени.
- F4: Фильтровать список процессов по имени.
- F5: Переключение между отображением иерархии процессов в виде отсортированного списка или дерева.
- F6: Сортировать процессы по столбцам.
- F7: Уменьшить хорошее значение (повысить приоритет) процесса.
- F8: Увеличить приятное значение (уменьшить приоритет) процесса.
- F9: Убить выбранный процесс.
- F10: Выход из командного интерфейса.
Список запущенных процессов в Linux с помощью команды atop
В atop команда обеспечивает более полный обзор запущенных процессов по сравнению с Топ команда. Начните с установки atop команда с:
В atop команда создает вывод, похожий на:
Раздел заголовка выходных данных команды предоставляет обзор системных ресурсов, включая статистику, связанную с процессами и производительностью, а также использование памяти, диска и сети.
В нижнем разделе перечислены запущенные в данный момент процессы и содержатся следующие категории:
- PID: Идентификационный номер процесса.
- SYSCPU: Использование ЦП процессом при обработке системы.
- USRCPU: Загрузка ЦП процессом во время работы в пользовательском режиме.
- VGROW: Объем виртуальной памяти, занятой процессом с момента последнего обновления выходных данных.
- RGROW: Объем физической памяти, занятой процессом с момента последнего обновления выходных данных.
- RUID: Реальный идентификатор пользователя, запустившего процесс.
- ST: Текущий статус процесса.
- EXC: Код выхода после завершения процесса.
- THR: Количество потоков, используемых процессом.
- S: Текущее состояние основного потока процесса.
- CPUNR: Количество процессоров, используемых процессом.
- CPU: Процент использования ЦП процессом.
- CMD: Имя команды, запустившей процесс.
С помощью atop команда со следующими параметрами изменяет формат вывода:
- -а : Показать только активные процессы.
- -c : Показать командную строку для каждого процесса.
- -d : Показать информацию о диске.
- -l : Показать общие значения как среднее значение в секунду.
- -m : Показать информацию о памяти.
- -n : Показать информацию о сети.
- -s : Показать информацию о планировании процесса.
- -v : Показать подробный вывод.
- -у : Показать отдельные темы.
Используйте следующие флаги для взаимодействия с atop команда:
- а: Сортировать по наиболее активным ресурсам.
- c: Сортировать по потреблению ЦП.
- d: Сортировать по активности диска.
- m: Сортировать по использованию памяти.
- n: Сортировать по сетевой активности.
Найдите идентификаторы процессов с помощью команды pgrep
С помощью pgrep команда позволяет искать конкретный процесс. В pgrep команда использует следующий синтаксис:
Например, используйте следующую команду для поиска Firefox процесс:
В выводе команды указан PID процесса:
Используя этот PID с ps команда позволяет получить больше информации о процессе. В этом примере использование PID 1439 предоставляет информацию о Firefox процесс:
После прочтения этого руководства вы сможете использовать ps , top , htop , and atop команды для вывода списка запущенных процессов в Linux и управления ими.
Используйте доступные параметры команды, чтобы настроить вывод и поведение команды.
Читайте также: