Как получить pid своего процесса python

Содержание
  1. Получить/установить uid, gid и pid процесса.
  2. Содержание :
  3. os.getegid() :
  4. os.geteuid() :
  5. os.getgid() :
  6. os.getgrouplist(user, group) :
  7. os.getgroups() :
  8. os.getlogin() :
  9. os.getpgid(pid) :
  10. os.getpgrp() :
  11. os.getpid() :
  12. os.getppid() :
  13. os.getpriority(what, who) :
  14. os.PRIO_PROCESS , os.PRIO_PGRP , os.PRIO_USER :
  15. os.getresuid() :
  16. os.getresgid() :
  17. os.getuid() :
  18. os.initgroups(username, gid) :
  19. os.setegid( egid ) :
  20. os.seteuid(euid) :
  21. os. setgid(gid) :
  22. os.setgroups(groups) :
  23. os.setpgrp() :
  24. os.setpgid(pid, pgrp) :
  25. os.setpriority(what, who, priority) :
  26. os.setregid(rgid, egid) :
  27. os.setresgid(rgid, egid, sgid) :
  28. os.setresuid(ruid, euid, suid) :
  29. os.setreuid(ruid, euid) :
  30. os.getsid(pid) :
  31. os.setsid() :
  32. os.setuid(uid) :
  33. Использование примеры :
  34. Как получить PID по имени процесса?
  35. 10 ответов 10
  36. Тип тренда
  37. Как получить PID процесса python
  38. Вам нужно чтобы получить PID процесса
  39. Что такое PID?
  40. Как получить PID процесса
  41. PID через экземпляр процесса
  42. Как получить идентификатор процесса программы в Unix или Linux с помощью Python?
  43. 9 ответов 9
  44. Тип тренда
  45. Не тот ответ, который вы ищете? Просмотрите другие вопросы с меткой python или задайте свой вопрос.
  46. Популярные сетевые вопросы
  47. Подпишитесь на RSS

Получить/установить uid, gid и pid процесса.

Следующие функции позволяют управлять uid, gid и pid процесса. Их чаще всего используют авторы демонов или специальных системных программ, которым необходимо изменить уровень разрешений, а не работать от имени пользователя root. Некоторые примеры приведены в конце раздела.

Содержание :

  • Функция Os.getegid(),
  • Os.geteuid function () ,
  • Функция Os.getgid(),
  • Функция Os.getgrouplist(),
  • Функция Os.getgroups(),
  • Os .getlogin Функция (),
  • Функция Os.getpgid(),
  • Функция Os.getpgrp(),
  • Функция Os.getpid(),
  • Функция Os .getppid(),
  • Функция Os.getpriority(),
  • константа os.PRIO_PROCESS(),
  • константа os.PRIO_PGRP(),
  • os.PRIO_USER() Константа,
  • Функция Os.getresuid(),
  • Функция Os.getresgid(),
  • Функция Os.getuid(),
  • функция Os.initgroups(),
  • функция os.setegid(),
  • функция os.seteuid(),
  • функция os.setgid() ,
  • функция os.setgroups(),
  • функция Os.setpgrp(), функция
  • os.setpgid(),
  • os.setpriority( функция ),
  • функция os.set regid() ,
  • функция os.setresgid() ,
  • функция os.setresuid() ,
  • Функция os.setreuid(),
  • Функция Os.getsid(),
  • Функция os.setsid(),
  • Функция os.setuid(),
  • Примеры использования.

os.getegid() :

Os.getegid() возвращает результат идентификатор (int) группы текущего процесса. Это соответствует биту «set id» в файле, который выполняется в текущем процессе.

os.geteuid() :

os.geteuid() Функция возвращает текущий идентификатор пользователя (int) текущего пользователя процесса.

os.getgid() :

Функция os.getgid() возвращает идентификатор текущей группы (int) текущего процесса.

os.getgrouplist(user, group) :

Функция os.getgrouplist() возвращает список идентификаторов группы, к которым принадлежит пользователь user ( str ). Если группы (int) нет в списке, она включается в список. Группа обычно указывается как поле идентификатора группы для ввода пароля пользователя.

os.getgroups() :

Функция os.getgroups() возвращает значение список других идентификаторов групп, связанных с текущим процессом.

os.getlogin() :

Функция os.getlogin() возвращает имя пользователя ( str ), который подключен к терминалу управления процессом. В большинстве случаев полезнее использовать getpass.getuser() , так как он проверяет переменные среды LOGNAME или USERNAME, чтобы узнать, кто является пользователем, и вызывает pwd.getpwuid(os.getuid())[0 ], чтобы получить текущий фактический логин пользователя .

Доступность: Unix, Windows.

os.getpgid(pid) :

Функция os.getpgid() возвращает идентификатор группы процессов (int) процесса с идентификатором процесса pid. Если pid равен 0, возвращается идентификатор группы текущего процесса.

os.getpgrp() :

Функция os.getpgrp() возвращает идентификатор текущей группы процессов.

os.getpid() :

Функция os.getpid() возвращает идентификатор текущего процесса.

os.getppid() :

Функция os.getppid() возвращает (int) идентификатор родительского процесса. Когда основной процесс завершается в Unix, идентификатор процесса возвращается функцией init(1), в Windows остается тот же идентификатор, который уже может быть повторно использован другим процессом.

Доступность: Unix, Windows.

os.getpriority(what, who) :

Функция os.getpriority() получает приоритет планирования программы. Аргумент which является одним из os.PRIO_PROCESS, os.PRIO_PGRP или os.PRIO_USER, а аргумент who интерпретируется относительно этого. Значение null для who указывает (соответственно) вызывающий процесс, группу процессов вызывающего процесса или фактический идентификатор пользователя вызывающего процесса.

Читайте также:  Как открыть свой порт на компьютере

os.PRIO_PROCESS ,
os.PRIO_PGRP ,
os.PRIO_USER
:

  • os.PRIO_PROCESS — идентификатор процесса,
  • os. PRIO_PGRP — идентификатор группы процессов,
  • os.PRIO_USER — идентификатор пользователя.

os.getresuid() :

Функция os.getresuid() возвращает кортеж (ruid, euid, suid), который указывает текущий, действующий и сохраненный идентификатор пользователя текущего процесса.

os.getresgid() :

Функция os.getresgid() ; возвращает кортеж (rgid, egid, sgid), указывающий текущие, действующие и сохраненные идентификаторы групп текущего процесса.

os.getuid() :

функция os.getuid() возвращает текущий идентификатор пользователя (int) текущего пользователя процесса.

os.initgroups(username, gid) :

ОС. Функция initgroups() вызывает системную функцию initgroups() для инициализации списка доступа группы со всеми группами, членом которых является указанное имя пользователя, плюс указанный идентификатор группы gid .

os.setegid( egid ) :

Функция os.setegid() устанавливает эффективный идентификатор группы egid (int) текущего процесса.

os.seteuid(euid) :

Функция os.seteuid() устанавливает эффективный идентификатор пользователя euid (int) текущего процесса.

os. setgid(gid) :

Функция os.seteuid() устанавливает идентификатор группы gid (int) текущего процесса.

os.setgroups(groups) :

Функция os.setgroups() устанавливает список идентификаторов других групп, связанных с текущим процессом. группы должны быть последовательностью, и каждый элемент должен быть целым числом, идентифицирующим группу. Эта операция обычно доступна только суперпользователю.

Примечание . В Mac OS X количество групп не может превышать максимальное эффективное количество групп, указанное системой. идентификаторов, обычно 16.

os.setpgrp() :

Функция os.setpgrp() вызывает setpgrp() или setpgrp(0, 0 ) в зависимости от версия реализации, если есть.

os.setpgid(pid, pgrp) :

Функция os.setpgid() вызывает системный вызов setpgid() для установки идентификатор группы процессов для процесса с идентификатором pid в группе процессов с идентификатором pgrp.

os.setpriority(what, who, priority) :

OS. Функция setpriority() устанавливает приоритет планирования приоритетной программы. Аргумент, который одним из os.PRIO_PROCESS, os.PRIO_PGRP или os.PRIO_USER и кто относительно чего интерпретируется. Нулевое значение для who указывает (соответственно) вызывающий процесс, группу процессов вызывающего процесса или фактический идентификатор пользователя вызывающего процесса. Приоритет приоритета — это значение в диапазоне от -20 до 19. Приоритет по умолчанию равен 0, более низкие приоритеты обеспечивают более благоприятное планирование.

os.setregid(rgid, egid) :

Функция os.setregid() устанавливает текущий жесткий и эффективный идентификаторы групп текущего процесса.

os.setresgid(rgid, egid, sgid) :

Функция os.setresgid() устанавливает текущий rgid, эффективный egid и сохраненный идентификатор группы sgid текущего процесса.

os.setresuid(ruid, euid, suid) :

Функция os.setresuid(). устанавливает фактический сохраненный ruid, эффективный euid и suid текущего процесса.

os.setreuid(ruid, euid) :

os.setreuid() фактический идентификатор пользователя ruid и эффективный eid текущего процесса.

os.getsid(pid) :

Вызов называется системным вызовом os.getsid() к функции getsid().

os.setsid() :

Функция os.setsid() вызывает системный вызов setsid().

os.setuid(uid) :

Функция os.setuid() устанавливает идентификатор пользователя равным uid текущего процесса.

Использование примеры :

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

Примечание . Перед запуском примера измените значения TEST_GID и TEST_UID, чтобы они соответствовали фактическому пользователю, определенному в системе.

При запуске от имени пользователя в операционной системе Linux:

Значения не изменить, потому что, когда процесс не запущен как root, не может изменить значение его истинного владельца. Любая попытка установить эффективный идентификатор пользователя или идентификатор группы, отличный от текущего идентификатора пользователя, вызовет ошибку OSError. Запуск того же скрипта с sudo для вызова с привилегиями root:

Читайте также:  Как получить root права на xiaomi poco x3 nfc

После изменения эффективного UID процесс ограничивается разрешениями этого пользователя. Поскольку пользователи без полномочий root не могут изменить свою эффективную группу, программа должна изменить группу перед сменой пользователя.

Источник

Как получить PID по имени процесса?

Есть ли способ получить PID по имени процесса в Python?

Например, мне нужно получить 3110 с помощью Chrome.

10 ответов 10

Тип тренда

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

Возврат к рейтингу по наивысшему баллу, если нет популярных сообщений.

Переключиться на тренды

Вы можете получить имя процесса pid, используя pidof через subprocess.check_output:

check_output([«pidof «,name]) будет запущен команда типа «pidof имя_процесса», Да, код возврата не равен нулю, он сгенерирует CalledPro cessError.

Обработка нескольких входных данных и преобразование в целые числа:

В [21]: get_pid(«chrome»)

Или передайте флаг -s, чтобы получить только pid:

Вы можете использовать пакет psutil:

Установить

Использование:

вы также можете использовать pgrep, в prgep вы также можете ввести шаблон для сопоставления

вы также можете использовать awk с ps следующим образом

Для posix (Linux, BSD и т.д. нужно смонтировать только каталог /proc) проще работать с файлами os в /proc. Это чистый Python, нет необходимости вызывать внешние программы оболочки.

Он работает в Python 2 и 3 (единственное отличие (2to3) — это дерево исключений, поэтому » кроме исключения «, которое Мне это не нравится, но я сохранил его для совместимости.Я мог бы также создать свое собственное дерево исключений.)

Источник

Как получить PID процесса python

14 июня 2022 г., Jason Brownlee Комментариев нет

Последнее обновление 8 августа 2022 г.

Вы можете получить pid процесса, используя multiprocessing.Process.pid или используя функции os.getpid() и os.getppid() .

В этом руководстве вы узнаете, как внедрить pid процесса Python .

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

Приступим.

Указатель

Вам нужно чтобы получить PID процесса

Процесс — это запущенный экземпляр компьютерной программы.

Любая программа на Python выполняется в процессе, который является новым экземпляром интерпретатора Python. Этот процесс называется MainProcess и имеет поток, используемый для выполнения программных инструкций, который называется MainThread . И процессы, и потоки создаются и управляются базовой операционной системой.

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

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

Вы можете узнать больше о многопроцессорности в учебнике:

В многопроцессорности нам может понадобиться получить идентификатор процесса или процесс PID.

  • Нам может понадобиться pid текущего процесса.
  • Нам может понадобиться pid дочернего процесса.
  • Нам может понадобиться pid основного процесса.

Как мы можем получить pid процесса в Python?

Взгляните на многопроцессорный API с помощью этого чит-кода PDF.

Что такое PID?

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

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

PID однозначно идентифицирует процесс среди всех активных процессов, запущенных в системе и управляемых операционной системой.

Читайте также:  Как открыть сто по ремонту

Таким образом, pid можно использовать для взаимодействия с процессом, например, для отправки сигнала процесс, который необходимо прервать или завершить process.

Как получить PID процесса

Мы можем получить pid экземпляра multiprocessing.Process или с помощью функций модуля os, таких как os .getpid() и чел. getppid() .

Давайте подробнее рассмотрим каждый подход по очереди.

PID через экземпляр процесса

Мы можем получить pid процесса через его multiprocessing.Process экземпляр.

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

Источник

Как получить идентификатор процесса программы в Unix или Linux с помощью Python?

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

Я мог проанализировать ее вывод, но подумал, что в python может быть лучший способ

9 ответов 9

Тип тренда

L Рейтинг тренда основан на наивысшем рейтинге метода по умолчанию, но он увеличивает количество последних голосов, что помогает получать более актуальные ответы.

Нет популярных постов, если вы хотите вернуться к рейтингу по наивысшему баллу.

Переключиться на тренды

Если вы не ограничены стандартной библиотекой, для этого мне нравится psutil.

Например, найти все процессы «python»:

Попробуйте pgrep. Его выходной формат намного проще, и поэтому его легче анализировать.

Адаптация из ранее опубликованных ответов.

(можно установить используя [sudo] pip install psutil )

Способ получить все pid-программы на вашем компьютере без загрузки каких-либо модулей:

Если вам нужна только одна программа или все программы с одинаковыми именами и хотите убить процесс или что-то в этом роде:

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

Для posix (Linux, BSD и т. д. просто смонтируйте каталог /proc) проще работать с файлами ОС в / proc

Работает в python 2 и 3 (единственное отличие — это дерево исключений, т. е. « кроме исключения », которое мне не нравится, но сохранено для совместимости. Создано собственное исключение) .

Пример вывода (работает как pgrep):

Это упрощенный вариант ответа Фернандо. Это для Linux и Python 2 или 3. Внешняя библиотека не требуется, и внешний процесс не выполняется.

Возвращается только первый найденный соответствующий процесс, который хорошо подходит для некоторых целей. Чтобы получить PID нескольких процессов сравнения, вы можете просто заменить return на yield, а затем получить список с помощью pids = list(get_command_pid(command)).

Альтернативно, в виде одного выражения:

Для одного процесса:

Для нескольких процессов:

Задачу можно решить с помощью следующего фрагмента кода, [0:28] — интервал v-one с именем, а [ 29:34] содержит фактический pid.

Не тот ответ, который вы ищете? Просмотрите другие вопросы с меткой python или задайте свой вопрос.

Популярные сетевые вопросы

Подпишитесь на RSS

Чтобы подписаться на этот RSS-канал, скопируйте и вставьте этот URL-адрес в программу для чтения RSS.

Дизайн страницы/логотип © 2022 Stack Exchange Inc; пользовательские вклады под лицензией CC BY-SA. версия 2022.8.11.42805

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

Испанский < ;20

Поделиться с друзьями
Решатор