Обработайте владельца по сравнению с пользователем процесса (системный монитор Gnome)

на Ubuntu я смог заставить это работать с

export PYTHONPATH=/usr/lib/pymodules/python2.7:/usr/lib/python2.7

export PYTHONHOME=/usr/lib/python2.7

sudo ln -s /usr/lib /usr/lib/python2.7/lib

sudo ln -s /usr /usr/lib/python2.7/local

Существует, вероятно, ошибка в sysconfig.py, где это добавляет полный путь сверх другого полного пути (игнорирующий фактические системные пути и настройки), а не relpath сверху abspath

6
28.05.2014, 03:33
2 ответа
[1184216] systemd - совершенно новая система (кажется, ей около 4-х лет). Однако systemd включает в себя намного больше, чем PID 1. В частности, она включает в себя замену ConsoleKit, старого программного обеспечения, которое управляло TTY-сессиями, X11-сессиями, и на самом деле просто входом в систему в целом. Замена systemd на ConsoleKit называется logind, и имеет ряд преимуществ (например, многоместный вариант наконец-то возможен, другие вещи, в которых я на самом деле не уверен, и т.д.)

Теперь systemd <3 [1184588]cgroup[1184589] s. лот [1184590][1184591]. [1184592]cgroup[1184593]s, так же известные как группы управления процессами, это то, как systemd отслеживает, к каким процессам относится тот или иной абстрактный "сервис"[1184594]1[1184595]. Ключом к пониманию вашего вопроса является то, что [1184596]logind[1184597] делает это и для пользователей: каждая пользовательская сессия получает свою собственную "сессию" ядра, которая поддерживается - вы догадались - группой [1184598]cgroup[1184599]. Почему? Потому что тогда ядро способно соответствующим образом управлять ресурсами среди пользователей. То, что один пользователь выполняет много процессов, не означает, что он должен получить больше процессорного времени. Но с помощью [1184600]cgroup[1184601]s, каждая

cgroup

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

Хорошо, теперь мы закончили с фоном. Готовы? Реальный ответ на ваш вопрос крайне не драматичен, учитывая вышеприведенную сборку: "владелец" процесса соответствует тому, кто запустил процесс, несмотря ни на что. На техническом уровне это отслеживается сеансом пользователя, поддерживаемым группой [1184604]cgroup [1184605]. Процесс "пользователь" - это традиционное чувство "пользователя": идентичность, под которой выполняется процесс (и всё, что связано с этой идентичностью, в первую очередь разрешения).

  1. Вот пример: вы входите в GNOME и запускаете терминал. Процесс, в котором запущены GNOME Shell и GNOME Terminal и [1184606]gnome-session[1184607] и всё остальное, что составляет GNOME, выполняется как пользователь: вы (потому что вы предоставили свои учетные данные и вошли в систему), и он тоже принадлежит вам (потому что это была ваша вина, так сказать, в том, что процессы запустились). Теперь скажем, что вы [1184608]sudo -u[1184609], например, [1184610]nobody [1184611]. Сейчас Вы ведете процесс, который принял идентичность [1184612]никого [1184613], но на более высоком, абстрактном уровне, процесс все равно был начат Вами, и он все еще прикреплен к Вашей сессии [1184614]2 [1184615]. Этот уровень отслеживается Вашим пользователем [1184616]cgroup
  2. 3[1184619], и это определяет тот факт, что Вы являетесь "владельцем".
  3. 1[1184621]: возьмем, к примеру, Apache. Когда Apache запускается, у него есть один основной процесс для управления всем, но он также порождает кучу подпроцессов. Основной процесс Apache на самом деле не выполняет никакой работы: он просто управляет подпроцессами, и [1184622] эти [1184623] процессы выполняют всю работу. (Это делается по разным причинам.) Тот факт, что абстрактная концепция "сервиса" Apache не может быть напрямую сопоставлена с конкретной концепцией "процесса" Apache, создаёт проблемы для менеджеров сервисов типа systemd. Вот где [1184624]cgroup[1184625]: главный, оригинальный процесс Apache помещается в контрольную группу, а затем, что бы он ни делал, он не может [1184626]никогда [1184627] избежать этой [1184628]cgroup[1184629]. Это означает, что абстрактная концепция сервиса Apache теперь может быть напрямую отображена в конкретную концепцию "группы Apache [1184630]cgroup[1184631]".
  4. 2[1184633]: посмотрите на [1184634]/proc/$pid/sessionid[1184635], чтобы получить некоторую информацию о сеансе ядра процесса, где [1184636]$pid[1184637] - это PID рассматриваемого процесса.
  5. 3 [1184639]: вы можете получить дополнительную информацию о группе процесса' [1184640]cgroup[1184641], взглянув на [1184642]/proc/$pid/cgroup[1184643], где [1184644]$pid[1184645] - это опять же PID данного процесса.[1184229].
5
27.01.2020, 20:25
[1184192]Колонка "Владелец" имеет отношение к имени пользователя, которому принадлежит сеанс, членом которого является этот конкретный процесс.

выдержка - [1184822]Ядро Linux

10.3 Сеансы

Каждая группа процессов находится в уникальном сеансе. (Когда процесс создан, он становится членом сессии его родителя). По соглашению, идентификатор сессии сессии равен идентификатору процесса первого члена сессии, называемого лидером сессии. Процесс находит идентификатор своей сессии с помощью системного вызова [1184824] getid() [1184825].

Каждая сессия может иметь контрольный [1184826] tty [1184827], что затем также называется контрольный tty каждого из его членов процессов. Дескриптор файла управляющего tty получается путем открытия [1184828]/dev/tty[1184829]. (А когда это не удается, не было управляющего [1184830]tty[1184831].) При наличии файлового дескриптора управляющего [1184832]tty[1184833] можно получить SID, используя [1184834]tcgetsid(fd)[1184835].

Сессия часто настраивается процессом входа в систему. Терминал, на котором производится вход в систему, затем становится контрольным tty сессии. Все процессы, которые являются потомками процесса входа в систему, в общем, будут членами сессии.

Это будет столбец "Сессия". Идентификатор этого сеанса - колонка "Владелец".

Пример

Работающий монитор системы GNOME, [1184579] монитор гном-системы [1184580] из оболочки:

Ссылки

Что такое лидер сеанса в [1184848]ps оси

Что такое "лидеры сеанса" в [1184850]ps [1184851]? [1184839] [1184585]? [1184586] [1184840] [gnome-system-monitor: 54/62] Начните упрощение карт памяти, столбцов процесса

4
27.01.2020, 20:25

Теги

Похожие вопросы