От какого пользователя запущен процесс linux
Перейти к содержимому

От какого пользователя запущен процесс linux

  • автор:

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

dm@dm-desktop:</p>
<p>В данной статье речь пойдет об <strong>управлении</strong> <strong>процессами</strong> в Терминале. Это будет полезно в первую очередь тем, кто обслуживает серверы, системным администраторам, а так же для пользователей, которые хотят саморазвиваться и узнавать все больше и больше о Linux.</p>
<p>Для мониторинга процессов используется утилита ps. Чтобы отобразить все запущенные процессы нужно выполнить команду:</p>
<p>Вывод может очень большой, но примерно вы увидите следующее:</p>
<p><em>USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND</em> <br /> <em>root 1 0.0 0.0 34096 3536 ? Ss 14:16 0:01 /sbin/init</em> <br /> <em>root 2 0.0 0.0 0 0 ? S 14:16 0:00 [kthreadd]</em> <br /> <em>root 3 0.0 0.0 0 0 ? S 14:16 0:00 [ksoftirqd/0]</em> <br /> <em>root 5 0.0 0.0 0 0 ? S< 14:16 0:00 [kworker/0:0H]</em> <br /> <em>root 7 0.1 0.0 0 0 ? S 14:16 0:03 [rcu_sched]</em> <br /> <em>root 15 0.0 0.0 0 0 ? S 14:16 0:00 [rcuos/7]</em> <br /> <em>root 16 0.0 0.0 0 0 ? S 14:16 0:00 [rcu_bh]</em> <br /> <em>root 25 0.0 0.0 0 0 ? S 14:16 0:00 [migration/0]</em> <br /> <em>root 26 0.0 0.0 0 0 ? S 14:16 0:00 [watchdog/0]</em> <br /> <em>root 27 0.0 0.0 0 0 ? S 14:16 0:00 [watchdog/1]</em> <br /> <em>root 28 0.0 0.0 0 0 ? S 14:16 0:00 [migration/1]</em> <br /> <em>root 29 0.0 0.0 0 0 ? S 14:16 0:00 [ksoftirqd/1]</em> <br /> <em>root 31 0.0 0.0 0 0 ? S< 14:16 0:00 [kworker/1:0H]</em> </p>
<p>Для более удобного просмотра можно выполнить команду:</p>
<p>Какую информацию можно увидеть по каждому процессу?</p>
<p> <em>USER — от какого пользователя запущен процесс.</em> <br /> <em>PID – идентификатор процесса.</em> <br /> <em>PPID – идентификатор родительского процесса.</em> <br /> <em>%CPU – доля времени процессора (в %), которое выделено данному процессу.</em> <br /> <em>%MEM – использование оперативной памяти в процентах.</em> <br /> <em>VSZ – виртуальный размер процесса.</em> <br /> <em>RSS — размер резидентного набора (количество 1K-страниц в памяти).</em> <br /> <em>TTY – терминал, с которого был запущен процесс.</em> <br /> <em>STAT– статус процесса. В данном параметре могут быть следующие значения:</em> </p>
<p> <em>R – активный (выполняется);</em> <br /> <em>D — процесс, который находится в состоянии подкачки на диске;</em> <br /> <em>T — остановленный процесс;</em> <br /> <em>S – спит;</em> <br /> <em>Z – зомби-процесс;</em> <br /> <em>< – повышенный приоритет;</em> <br /> <em>N — низкий приоритет;</em> <br /> <em>L — процесс имеет страницы, которые заблокированы в памяти;</em> <br /> <em>+ – Находится в интерактивном режиме.</em> </p><div class='code-block code-block-1' style='margin: 8px 0; clear: both;'>
<!-- 1russgps -->
<script src=

START – время запуска процесса.
TIME – сколько времени CPU занял данный процесс.
CMD или COMMAND — командная строка запуска программы, выполняемой данным процессом.

Чтобы отобразить дерево, показывающее иерархические отношения, выполним следующую команду:

Чтобы отфильтровать поиск нужного процесса, можно использовать следующую команду:

ps aux | grep handbrake

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

dm 12849 0.0 0.0 17176 944 pts/21 D+ 14:58 0:00 grep —color=auto handbrake

Далее на помощь приходит команда top. В отличии от ps, которая делает моментальный снимок процессов в текущий момент, top отображает состояние процессов и их активность «в реальном режиме времени». В самой верхней части вывода можно увидеть фактическое время, время, которое прошло с момента включения системы, количество пользователей, количество запущенных процессов, а так же число процессов, которые находятся в различных состояниях, информация про использование CPU, памяти и свопа. Внизу имеется таблица, которая отображает все процессы.

Вся информация о процессах обновляется каждые 5 секунд. Вы можете отсортировать все процессы по PID, по используемому времени CPU (по умолчанию), по использованию памяти, по времени исполнения и возрасту. Переключать режимы отображения можно с помощью следующих клавиатурных команд:

Shift+N — сортировка по PID;
Shift+A — сортировка по возрасту;
Shift+P — сортировка по использованию CPU;
Shift+M — сортировка по использованию памяти;
Shift+T — сортировка по времени выполнения.

Если нужно завершить какой-нибудь процесс, то это можно сделать с помощью клавиши K, предварительно указав PID процесса, а с помощью клавиши R можно переопределить значение nice для нужного процесса.

Что такое nice? Данные этого параметра можо увидеть в столбце NI команды top. Итак имдем далее. Приоритет для каждого процесса устанавливается в момент порождения процесса. Приоритет процесса определяется значением «nice», которое лежит в пределах от +20 (самый наименьший приоритет, процесс выполняется в тот момент, когда ничто другое не занимает процессор), до -20 (наивысший приоритет).

Чтобы изменять приоритет нового процесса существует утилита nice. Другими словами, если нужно запустить какой-нибудь процесс/программу, то вы можете задать приоритет в системе перед запуском.

nice [- adnice] command [args]

где adnice — это значение (от –20 до +19), которое добавляется к значению nice процесса-родителя. Отрицательные значения имеет право устанавливать только суперпользователь. Если опция adnice не задана, то по умолчанию для процесса-потомка устанавливается значение nice, увеличенное на 10 по сравнению со значением nice родительского процесса. Пример использования:

nice -n 15 deluge

В данном примере мы запустим программу Deluge с приоритетом 15.

А для изменения приоритета уже запущенных процессов существует утилита renice. Для данной утилиты нужно указывать не имя процесса, а его PID. Вы можете изменять приоритет только своих процессов, а от имени суперпользователя сможете как понижать, так и повышать соверешенно любой прцесс в системе. Пример использования:

sudo renice -1 24891

В данном примере мы повысили приоритет процесса с PID 24891 на 1 от имени пользователя root.

Более подробно о всех параметрах утилит вы сможете узнать, выполннив команды:

Если запустить какой-нибудь поцесс в окне Терминала, то больше в данном окне вы ничего не сможете выполнить. Поэтому иногда полезно запускать процессы в фоновом режиме. Для этого используется символ & (амперсанд). Например нужно рекурсивно скопировать один каталог в другой. Чтобы запустить этот процесс в фоне выполнитм команду:

cp -R /home/dm/Загрузки/ /home/dm/Данные/ &

На этом этапе Терминал будет готов к вводу новых команд, а наш процесс копирования будет происходить в фоне. Чтобы вернуть возможность управления фоновым процессом нужно выполнить команду:

fg — означает: ForeGround(приоритетный). После этой команды Терминал снова будет занят данной командой. Чтобы снова сделать данный процесс фоновым нужно сначала остановить его, нажав Ctrl+Z, а потом выполнив команду:

что означает — BackGround(фоновый). Таким способом можно запустить несколько заданий, при этом каждму процессу будет присвоен номер задания. Если выполнить в Терминале команду:

то она выведет список всех заданий, которые мы запустили в данном Терминале. После номера процесса указывается его состояние: остановлен, выполняется или приостановлен. В конце строки указывается команда, которая выполняется этим процессом. Чтобы восстановить конкретное задание в приоритетный режим нужно выполнить команду fg n, где n — означает номер задания, к примеру, fg 2.

Также для управления процессами используются сигналы. В этом нам поможет команда kill, которая посылает нужному процессу (указав его PID) любой сигнал. Например:

Данная команда «убьет» грубым образом процесс 3462 не дав ему корректно завершиться, а если выполнить команду:

то процесс 3462 будет остановлен. Если нужно корректно завершить запущенный процесс, выполните команду:

Часто используемые сигналы kill:

1 HUP (hang up, отбой)
2 INT (interrupt, прекращение выполнения команды)
3 QUIT (quit, завершение. То же что и INT, но сильнее)
6 ABRT (abort, аварийное завершение)
9 KILL (kill, завершает процесс некорректно, но наверняка)
14 ALRM (alarm clock, будильник)
15 TERM (корректное завершение процесса)
18 CONT (продолжение выполнения приостановленного процесса)
19 TERM (приостановка выполнения процесса)

linux под каким пользователем запущен процесс

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

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

Список процессов в Linux

Я не буду подробно рассказывать про каждую команду, которую можно применять для просмотра списка запущенных процессов, вместо этого мы пройдёмся по основным утилитам для решения этой задачи, рассмотрим как посмотреть список потоков процесса, вывести процессы, которые выполняются на определённом ядре, а также как найти скрытые процессы. Но сначала надо разобраться с терминами.

1. Утилита ps

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

Snimok ekrana ot 2020 06 21 20 28 57

Snimok ekrana ot 2020 06 21 20 29 31

Вот значение основных колонок в выводе утилиты:

Чтобы посмотреть список процессов в виде дерева, и понимать какой процесс имеет какие дочерние процессы, выполните команду:

Snimok ekrana ot 2020 06 21 20 30 25

Для просмотра списка процессов с потоками используйте опцию -L:

Snimok ekrana ot 2020 06 21 20 14 09

Здесь появятся ещё две дополнительных колонки:

Чтобы посмотреть список процессов определенного пользователя, например, sergiy используйте опцию -u:

Snimok ekrana ot 2020 06 21 20 14 34

Теперь давайте перейдём к другим, более интересным, интерактивным утилитам.

2. Утилита top

Утилита top не поставляется вместе с системой, поэтому вам придется её установить. Для этого в Ubuntu выполните:

sudo apt install top

Программа позволяет интерактивно просматривать список запущенных процессов Linux. Чтобы вывести список процессов Linux выполните команду:

Snimok ekrana ot 2020 06 21 20 14 59

Колонки, которые выводит программа очень похожи на ps:

Для того чтобы сделать вывод программы цветным, нажмите Z:

Snimok ekrana ot 2020 06 21 20 15 00

Чтобы вывести дерево процессов Linux нажмите сочетание клавиш Shift+V:

Snimok ekrana ot 2020 06 21 20 15 19

Для отображения потоков нажмите Shift + H:

Snimok ekrana ot 2020 06 21 20 16 01

Если вам недостаточно стандартных полей с информацией о процессах, вы можете нажать Shift + F и выбрать дополнительные поля, которые надо отображать. Для выбора или удаления поля используйте пробел:

Snimok ekrana ot 2020 06 21 20 16 05

3. Утилита htop

Это ещё более мощная утилита для просмотра запущенных процессов в Linux. Пользоваться ею намного удобнее. Здесь поддерживаются не только горячие клавиши, но и управление мышью. А ещё она выводит всё в цвете, поэтому смотреть на данные намного приятнее. Для установки программы выполните:

sudo apt install htop

Для того чтобы запустить выполните в терминале:

Snimok ekrana ot 2020 06 21 20 16 38

Колонки, которые вы увидите в выводе программы, аналогичны тем, что доступны в top, поэтому я не буду рассматривать их здесь отдельно. Для настройки выводимых данных нажмите кнопку F2, затем перейдите в раздел Display Options:

Snimok ekrana ot 2020 06 21 20 16 44

Snimok ekrana ot 2020 06 21 20 17 18

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

Snimok ekrana ot 2020 06 21 20 16 48

Тут вы можете выбрать какие колонки отображать, а какие нет, а также можете настроить их порядок.

4. Программа Gnome Monitor

Вы можете смотреть запущенные процессы не только в терминале, но и в графическом интерфейсе. Для этого можно использовать утилиту Gnome Monitor. У неё намного меньше возможностей, по сравнению даже с ps, но зато у неё есть графический интерфейс. Вы можете запустить программу из главного меню системы:

Snimok ekrana ot 2020 06 21 20 18 21

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

Snimok ekrana ot 2020 06 21 20 18 46

Теперь программа отображает все запущенные процессы Linux в системе. Здесь вы можете выполнять поиск по процессам, завершать их и многое другое. Но потоков и дерева процессов программа не показывает.

5. Утилита atop

sudo apt install atop

Затем запустите её:

Snimok ekrana ot 2020 06 21 20 19 28

Вот основные колонки, которые выводит утилита и их значения:

Для того чтобы включить отображение потоков процесса нажмите y:

Snimok ekrana ot 2020 06 21 20 20 22

Для просмотра информации о памяти нажмите m, если хотите вернутся обратно, нажмите g:

Snimok ekrana ot 2020 06 21 20 19 46

Выводы

В этой статье мы разобрали самые основные способы посмотреть список процессов в Linux, как видите есть простые способы, но есть и более сложные и информативные. Какими способами вы пользуетесь чаще всего? Напишите в комментариях!

Под каким пользователем запущен процесс linux

Как определить от какого пользователя запущена программа?

Доброго дня.
Подскажите пожалуйста как определить от какого имени запущен squid. Проверял командой ps aux | grep squid и вывод следующий:
Скрин
По строкам:
root 22483 0.0 0.0 89984 3588 ? Ss окт18 0:00 /usr/sbin/squid -f /etc/squid/squid.conf
squid 22485 0.0 1.9 165552 76776 ? S окт18 6:04 (squid-1) -f /etc/squid/squid.conf
непонятно от рута или от сквида запущен?

У тебя 2 процесса сквида. Родительский процесс запущен от рута, дочерний процесс работает с правами пользователя.

root запустил первый (точнее PID1 который работает с правами root) который запустил второй от пользователя squid (что задано в конфиге). Вот тебе выхлоп nginx такой же

Хотел поставить rejik а там поле есть где нужно прописать от какого пользователя запущен сквид. мне в итоге то какого пользователя указать?

Список процессов 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, как видите есть простые способы, но есть и более сложные и информативные. Какими способами вы пользуетесь чаще всего? Напишите в комментариях!

Как узнать от какого пользователя запущен apache?

Собственно сам вопрос.Сервер на FreeBSD с Apache/2.2.25. Есть доступ по SSH.

Нужна команда-ssh которая покажет имя пользователя ?

в первой колонке будет имя пользователя.

(минимальное количество символов в ответе — 20минимальное количество символов в ответе — 20минимальное количество символов в ответе — 20минимальное количество символов в ответе — 20)

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.6.16.43501

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *