Получить имя или pid родительского процесса
Получить имя или pid родительского процесса
Имеется имя файла И pid процесса. Нужно узнать имя файла ИЛИ pid его родителя Добавлено через 3.
Получить по PID имя процесса
Здравствуйте! У меня проблема заключается в том, что есть PID нужного мне процесса, но имя самого.
Как определить PID процесса или имя по сети
Программа перехватывает с сетевого адаптера сетевые пакеты. Я возвращаю IP И порт . Как определить.
Как узнать Handle или PID процесса, зная его имя и класс?
Как узнать Handle или PID процесса, зная его имя и класс?
4615 / 2036 / 359
Регистрация: 17.03.2012
Сообщений: 10,103
Записей в блоге: 6
Система какая?
17 / 17 / 11
Регистрация: 17.03.2017
Сообщений: 109
если windows то psutil в помощь
16 / 18 / 11
Регистрация: 07.03.2016
Сообщений: 362
dondublon, К сожалению, винда.
Добавлено через 37 секунд
Slice_, А можно поподробнее.
17 / 17 / 11
Регистрация: 17.03.2017
Сообщений: 109
kolay_ne, cyberforum.ru/python/thread1983394.html или pypi.python.org/pypi/psutil
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Какие есть функции для завершения процесса чтобы можно было передать PID или имя
Я тестил TerminateProcess он вырубает процесс слишком жёстко, после этого процессы запускаются не.
Закрытие процесса по его PID и заморозка процесса по его имени или PID
Нужны две вот такие функции закрытие процесса по его PID и заморозка процесса по его имени или PID.
Определить заголовок(имя) окна, зная PID его процесса
Сабж! Уже 2ой день не могу найти — как? У меня известе PID и hwnd процесса, как узнать имя окна(то.
Получить PID процесса
Здравствуйте все! помогите кто чем может. ( Задача: Два разных процесса (А и В) запустили.
Получить PID запускаемого процесса
Как при запуске приложения, в моем случае JAVA, получить его PID. И как при помощи PID можно.
Как получить все PID-ы запущенного процесса delphi?
Как получить все PID-ы запущенного процесса delphi? HELP!:resent: Добавлено через 25 минут Все.
Как узнать pid процесса python
- Скачать приложения для дома
- Скачать приложения для бизнеса
- Поддержка приложений для дома
- Поддержка приложений для бизнеса
Бесплатные сервисы и утилиты
- Проверить файл или ссылку
- Бесплатные утилиты
Choose your language
Сменить язык
Нет результатов
Для всех приложений
Общие вопросы
Как узнать идентификатор процесса (PID или ИД процесса) в Windows
Статья обновлена: 31 октября 2023 ID: 6325
Вы можете узнать идентификатор процесса (PID или ИД процесса) с помощью Диспетчера задач или командной строки.
Как узнать PID c помощью Диспетчера задач
- Нажмите Ctrl+Shift+Esc на клавиатуре.
- Нажмите правой кнопкой мыши на заголовок таблицы и в контекстном меню выберите ИД процесса.

- Найдите идентификатор нужного процесса в столбце ИД процесса.
Python, subprocess — как получить PID процесса (не шелла)?
Стартую программу через Popen с параметром shell=True. Соответственно, мне известен только PID шелла, а надо знать PID запущенной в шелле программы. Как его получить? Нагуглил это, но нифига не понял, объясните внятно что делать.

InterVi ★★★★
06.07.16 04:15:45 MSK
Не используй shell=True
deadNightTiger ★★★★★
( 06.07.16 05:18:35 MSK )
Ответ на: комментарий от deadNightTiger 06.07.16 05:18:35 MSK

а как тогда запускать, скажем, джаву?
InterVi ★★★★
( 06.07.16 05:27:07 MSK ) автор топика
Ответ на: комментарий от InterVi 06.07.16 05:27:07 MSK
Покажи, как сейчас запускаешь.
deadNightTiger ★★★★★
( 06.07.16 05:41:50 MSK )
Ответ на: комментарий от deadNightTiger 06.07.16 05:41:50 MSK

sub = subprocess.Popen('java -jar glowstone++-1.9.2-SNAPSHOT.jar', shell=True, stdin=PIPE, stdout=PIPE, stderr=err, close_fds=True, cwd='/home/alex/servers/glow', universal_newlines=True)
InterVi ★★★★
( 06.07.16 06:27:42 MSK ) автор топика
Ответ на: комментарий от deadNightTiger 06.07.16 05:41:50 MSK

О, я понял. Работает вот так:
sub = subprocess.Popen(['/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java', '-jar', 'glowstone++-1.9.2-SNAPSHOT.jar'], shell=False, stdin=PIPE, stdout=PIPE, stderr=err, close_fds=True, cwd=path, universal_newlines=True)
Но неужели нет другого пути? Неудобно же.
InterVi ★★★★
( 06.07.16 06:42:32 MSK ) автор топика
Ответ на: комментарий от InterVi 06.07.16 06:42:32 MSK
from shutil import which Полный путь указывать необязательно.
deadNightTiger ★★★★★
( 06.07.16 06:59:40 MSK )
Последнее исправление: deadNightTiger 06.07.16 07:05:41 MSK (всего исправлений: 1)
Ответ на: комментарий от InterVi 06.07.16 06:42:32 MSK

Что именно тебе неудобно? То что список, а не одна строка? Так секурнее и правильнее, да и удобнее, когда параметры могут содержать пробелы. Но если напрягает, можешь написать
'/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -jar glowstone++-1.9.2-SNAPSHOT.jar'.split()
Psych218 ★★★★★
( 06.07.16 07:02:38 MSK )
Последнее исправление: Psych218 06.07.16 07:06:03 MSK (всего исправлений: 4)
Ответ на: комментарий от Psych218 06.07.16 07:02:38 MSK
deadNightTiger ★★★★★
( 06.07.16 07:08:13 MSK )
Ответ на: комментарий от deadNightTiger 06.07.16 06:59:40 MSK

Благодарю за подсказку, всё пашет. split(‘ ‘) использую, ибо там команда из конфига читается.
InterVi ★★★★
( 06.07.16 07:22:46 MSK ) автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум pidof -x и шелл-скрипт (2011)
- Форум python & subprocess (2018)
- Форум Получить pid процесса php (2015)
- Форум Python, Qt: передача значения QRadioButton и использование его в QPushButton (2022)
- Форум python subprocess sudo (2022)
- Форум получить pid процесса владеющего сокетом (2017)
- Форум [python] subprocess communicate() (2009)
- Форум PID процесса (2005)
- Форум PID процесса (2001)
- Форум pid процесса (2019)
Извлечение/установка uid, gid и pid процесса
Функции, представленные ниже дают возможность манипулировать с uid, gid и pid процесса. Чаще всего они используются авторами демонов или специальных системных программ, которым необходимо изменять уровень разрешений, а не запускаться от имени пользователя root. В конце раздела представлены некоторые примеры.
Содержание:
- Функции os.getegid() ,
- Функции os.geteuid() ,
- Функции 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.setregid() ,
- Функции 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 ). Если группы group ( 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(which, who) :
Функции os.getpriority() получает приоритет планирования программы. Аргумент which является одним из os.PRIO_PROCESS , os.PRIO_PGRP или os.PRIO_USER и аргумент who интерпретируется относительно which . Нулевое значение для 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) :
Функции os.initgroups() вызывает системную функцию initgroups() , чтобы инициализировать список группового доступа со всеми группами, членом которых является указанное имя пользователя username , плюс указанный идентификатор группы 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() устанавливает список дополнительных идентификаторов групп groups , связанных с текущим процессом. Группы groups должны быть последовательностью и каждый элемент должен быть целым числом, идентифицирующим группу.Эта операция обычно доступна только суперпользователю.
Примечание. В Mac OS X длина групп не может превышать установленное системой максимальное количество эффективных групповых идентификаторов, обычно 16.
os.setpgrp() :
Функции os.setpgrp() вызывает системный вызов setpgrp() или setpgrp(0, 0) в зависимости от того, какая версия реализована, если есть.
os.setpgid(pid, pgrp) :
Функции os.setpgid() вызывает системный вызов setpgid() , чтобы установить идентификатор группы процессов для процесса с идентификатором pid для группы процессов с идентификатором pgrp .
os.setpriority(which, who, priority) :
Функции os.setpriority() устанавливает приоритет планирования программы priority . Аргумент which является одним из os.PRIO_PROCESS , os.PRIO_PGRP или os.PRIO_USER и who интерпретируется относительно which . Нулевое значение для who обозначает (соответственно) вызывающий процесс, группу процессов вызывающего процесса или реальный идентификатор пользователя вызывающего процесса. Приоритет priority — значение в диапазоне от -20 до 19. Приоритет по умолчанию — 0, более низкие приоритеты вызывают более благоприятное планирование.
os.setregid(rgid, egid) :
Функции os.setregid() устанавливает действительный rgid и эффективный egid идентификаторы групп текущего процесса.
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 и эффективный euid идентификаторы пользователя текущего процесса.
os.getsid(pid) :
Функции os.getsid() вызывает системный вызов getsid() .
os.setsid() :
Функции os.setsid() вызывает системный вызов setsid() .
os.setuid(uid) :
Функции os.setuid() устанавливает идентификатор пользователя uid текущего процесса.
Примеры использования:
В примере показана действительная и эффективная информация о пользователе и группе для процесса, а затем изменяются действительные значения. Это похоже на то, что демон должен делать, когда он запускается от имени root во время загрузки системы, чтобы снизить уровень привилегий и работать от имени другого пользователя.
Заметка. Перед запуском примера измените значения TEST_GID и TEST_UID , чтобы они соответствовали реальному пользователю, определенному в системе.
# test-gid-uid.py import os TEST_GID = 1001 TEST_UID = 1001 def show_user_info(): print(f'User (actual/effective): os.getuid()>/os.geteuid()>') print(f'Group (actual/effective): os.getgid()>/os.getegid()>') print('Actual Groups:', os.getgroups()) print('BEFORE CHANGE:') show_user_info() print() try: os.setegid(TEST_GID) except OSError: print('ERROR: Could not change effective group. ' 'Rerun as root.') else: print('CHANGE GROUP:') show_user_info() print() try: os.seteuid(TEST_UID) except OSError: print('ERROR: Could not change effective user. ' 'Rerun as root.') else: print('CHANGE USER:') show_user_info() print()
При запуске от имени пользователя в OS Linux:
docs-python@IdeaCentre:~$ python3 test-gid-uid.py BEFORE CHANGE: User (actual/effective): 1000/1000 Group (actual/effective): 1000/1000 Actual Groups: [4, 24, 27, 30, 46, 116, 126, 1000] ERROR: Could not change effective group. Rerun as root. ERROR: Could not change effective user. Rerun as root.
Значения не меняются, потому что, когда он не запущен от имени пользователя root, процесс не может изменить значение своего эффективного владельца. Любая попытка установить эффективный идентификатор пользователя или идентификатор группы, отличный от идентификатора текущего пользователя, вызывает ошибку OSError . Выполнение того же скрипта с использованием sudo, чтобы он вызывался с привилегиями root:
docs-python@IdeaCentre:~$ sudo python3 test-gid-uid.py BEFORE CHANGE: User (actual/effective): 0/0 Group (actual/effective): 0/0 Actual Groups: [0] CHANGE GROUP: User (actual/effective): 0/0 Group (actual/effective): 0/1001 Actual Groups: [0] CHANGE USER: User (actual/effective): 0/1001 Group (actual/effective): 0/1001 Actual Groups: [0]
Как только эффективный UID изменяется, процесс ограничивается разрешениями этого пользователя. Поскольку пользователи без полномочий root не могут изменить свою эффективную группу, программе необходимо изменить группу перед сменой пользователя.
- ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
- Управление переменной средой окружения системы
- Представление пути в файловой системе
- Извлечение/установка uid, gid и pid процесса
- Наследование файловых дескрипторов
- Создание дескриптора файла, чтение, запись и его закрытие
- Функция listdir() модуля os
- Функция walk() модуля os
- Функция scandir() модуля os
- Объект DirEntry() модуля os
- Функция stat() модуля os
- Объект stat_result, результаты выполнения os.stat()
- Функция lstat() модуля os
- Функция access() модуля os
- Функция chdir() модуля os
- Функция chmod() модуля os
- Функция chown() модуля os
- Функция chroot() модуля os
- Функция getcwd() модуля os
- Функция link() модуля os
- Функция mkdir() модуля os
- Функция makedirs() модуля os
- Функция symlink() модуля os
- Функция readlink() модуля os
- Функция remove() модуля os, удалить файл
- Функция removedirs() модуля os
- Функция rename() модуля os
- Функция renames() модуля os
- Функция replace() модуля os
- Функция rmdir() модуля os
- Функция strerror() модуля os
- Функция supports_dir_fd модуля os
- Функция supports_effective_ids модуля os
- Функция supports_fd модуля os
- Функция supports_follow_symlinks модуля os
- Функция truncate() модуля os
- Функция utime() модуля os
- Манипулирование списком контроля доступа ACL в Linux
- Функция abort() модуля os
- Функция exec*() модуля os
- Функция popen() модуля os
- Функция system() модуля os
- Функция _exit() модуля os
- Функция fork() модуля os
- Функция kill() модуля os
- Функция spawn() модуля os
- Функция umask() модуля os
- Функция uname() модуля os
- Функция wait() модуля os
- Функция waitpid() модуля os
- Определение состояния процесса
- Константы для поддержки операций с путями
- Генератор случайных байтов на основе модуля os
- Функция startfile() модуля os
- Функция times() модуля os
- Функции getloadavg() и cpu_count() модуля os
- Функция waitstatus_to_exitcode() модуля os
- Функция listdrives() модуля os, имена дисков Windows
- Функция listmounts() модуля os, точки монтирования Windows
- Функция listvolumes() модуля os, список томов Windows
