как узнать pid службы
Как узнать PID (идентификатор процесса) в Windows
В данной статье показаны действия, с помощью которых можно узнать PID (идентификатор процесса) в операционной системе Windows.
Идентификатор процесса (process identifier, PID) — уникальный номер процесса в операционной системе Windows.
Все процессы имеют уникальные идентификаторы PID, которые автоматически присваиваются каждому процессу когда он создается в операционной системе, что позволяет ядру системы различать процессы.
При необходимости можно узнать PID (идентификатор процесса).
Как узнать PID (идентификатор процесса) в диспетчере задач
Теперь найдите нужный процесс, и в столбце ИД процесса будет отображен идентификатор соответствующего процесса.
Как узнать PID (идентификатор процесса) в командной строке
Также узнать PID (идентификатор процесса) можно используя командную строку.
Запустите командную строку и выполните следующую команду:
Найдите нужный процесс, в столбце PID будет отображен идентификатор процесса.
Также можно отобразить процессы в виде списка, для этого в командной строке выполните следующую команду:
Найдите нужный процесс, в строке PID будет отображен идентификатор процесса.
Используя рассмотренные выше действия, можно узнать PID (идентификатор процесса) в операционной системе Windows.
Как узнать какой порт использует программа
На компьютере может быть установлено довольно много программ и все они резервируют в операционной системе определенный порт для взаимодействия с другим программным обеспечением по сети. В большинстве случаев пользователь заранее знает какой порт использует программа. Это может быть официально зарезервированный порт, под определенный сетевой протокол. Например почтовые программы используют для приема почты протокол POP3 и резервируют порт 110. Бывают неофициально резервируемые порты, например порт 1540 используемый агентом сервера 1С:Предприятие. Информацию об используемых неофициальных портах разработчики программного обеспечения указывают в документации.
Определения порта программы стандартными средствами Windows
Поиск идентификатора процесса PID
1. Открываем командную строку: сочетание клавиш и вводим команду CMD.
2. Запускаем tasklist и находим PID процесса.
Если необходимо отобразить полный список процессов, в том числе служебных и системных, необходимо использовать tasklist без аргументов.
Команда tasklist /fi «status eq running» найдет только те процессы, которые были запущенны программами. Это сократит список процессов и облегчит поиск.
Находим в списке нужную программу, например OneDrive.exe и запоминаем соответствующий PID.
Поиск порта процесса
Для получения списка используемых портов воспользуемся утилитой командной строки netstat.
B netstat были использованы слtдующие аргументы:
В результате будет получен довольно крупный список активных сетевых соединений, среди которых необходимо найти соединение с нужным PID.
В найденных результатах видно, что процесс c PID 15304 (программа OneDrive.exe) использует несколько сетевых портов: 11906, 11907, 11908.
Обращайте внимание на то, для какого траспортного протокола открыт порт: ТСР или UDP. Это информация будет важна, когда будете пробрасывать порт через межсетевой экран.
Программы для просмотра сетевых соединений
Этот способ подойдет для тех, кто не хочет погружаться в работу утилит командной строки Windows, а желает быстро и просто получить информацию о портах, которые использует программа, в графическом интерфейсе.
TCPView
CurrPorts
Из плюсов программы следует отметить наличие русского языка. Чтобы русифицировать программу нужно скачать отдельный файл русификации и положить его в папку с программой.
9 самых простых способов узнать идентификатор процесса (PID) в Linux
Linux GUI также предлагает ту же функцию, но CLI – эффективный способ выполнения операции kill.
Что такое идентификатор процесса PID?
PID обозначает идентификационный номер процесса, который обычно используется большинством ядер операционной системы, таких как Linux, Unix, macOS и Windows.
Это уникальный идентификационный номер, который автоматически присваивается каждому процессу, когда он создается в операционной системе.
Процесс – это исполняемый экземпляр программы.
PID для запущенных процессов в системе можно найти с помощью следующих девяти методов, таких как команда pidof, команда pgrep, команда ps, команда pstree, команда ss, команда netstat, команда lsof, команда fuser и команда systemctl.
В этом уроке мы рассмотрим идентификатор процесса Apache для проверки.
Метод-1: Использование команды pidof
pidof используется для поиска идентификатора процесса запущенной программы.
Он выводит эти идентификаторы на стандартный вывод.
Чтобы продемонстрировать это, мы узнаем идентификатор процесса Apache2 из системы Debian 9.
Из вышесказанного вы можете столкнуться с трудностями идентификации идентификатора процесса, поскольку он показывает все PID (включая родительский и дочерний) с именем процесса.
Следовательно, нам нужно выяснить родительский PID (PPID), который мы ищем.
Это может быть первый номер. В моем случае это 3754, и он показан в порядке убывания.
Способ-2: Использование команды pgrep
pgrep просматривает текущие процессы и перечисляет идентификаторы процессов, которые соответствуют критериям выбора для stdout.
Это также похоже на вышеприведенный вывод, но этот приводит к сокращению результатов в порядке возрастания, что ясно говорит о том, что родительский PID является последним.
В моем случае это 3754.
Примечание. Если у вас есть несколько идентификаторов процесса, вы можете столкнуться с проблемой идентификации идентификатора родительского процесса при использовании команды pidof & pgrep.
Метод-3: Использование команды pstree
pstree показывает запущенные процессы как дерево.
Дерево коренится либо в pid, либо в init, если pid опущен.
Если имя пользователя указано в команде pstree, тогда отображается весь процесс, принадлежащий соответствующему пользователю.
pstree визуально объединяет идентичные ветви, помещая их в квадратные скобки и префикс с количеством повторений.
Чтобы получить только один родительский процесс, используйте следующий формат.
Команда pstree очень простая, потому что она отдельно разделяет родительский и дочерний процессы
Метод-4: Использование команды ps
ps отображает информацию о выборе активных процессов.
Он отображает идентификатор процесса (pid = PID), терминал, связанный с процессом (tname = TTY), кумулятивное время процессора в формате [DD-] hh: mm: ss (time = TIME) и исполняемое имя (ucmd = ЦМД).
По умолчанию выходной файл не сортируется.
Из вышеприведенного вывода мы можем легко идентифицировать идентификатор родительского процесса (PPID) на основе даты начала процесса.
В моем случае процесс apache2 был запущен @ Dec11, который является родителем, а другие – дочерними. PID apache2 равен 3754.
Метод-5: Использование команды ss
ss используется для вывода статистики сокетов.
Он позволяет отображать информацию, аналогичную netstat.
Он может отображать больше информации о TCP и состоянии, нежели другие инструменты.
Он может отображать статистику для всех типов сокетов, таких как PACKET, TCP, UDP, DCCP, RAW, домен Unix и т. д.
Метод-6: Использование команды netstat
netstat – вывод сетевых подключений, таблиц маршрутизации, статистики интерфейсов, соединений маскарадинга и многоадресной рассылки.
По умолчанию netstat отображает список открытых сокетов.
Если вы не укажете каких-либо семейств адресов, будут выведены активные сокеты всех сконфигурированных семейств адресов.
Эта программа устарела. Замена для netstat – ss.
Метод-7: использование команды lsof
lsof – список открытых файлов.
Команда lsof Linux выводит информацию о файлах, открытых для процессов, запущенных в системе.
Метод-8: Использование команды fuser
Утилита fuser должна записывать на стандартный вывод идентификаторы процессов процессов, запущенных в локальной системе, которые открывают один или несколько именованных файлов.
Метод-9: Использование команды systemctl
systemctl – Управление системой systemd и менеджером сервисов.
Это замена старого системного управления SysV и большинство современных операционных систем Linux были адаптированы systemd.
Как узнать PID процесса в Linux
Каждый процесс в операционной системе имеет свой уникальный идентификатор, по которому можно получить информацию об этом процессе, а также отправить ему управляющий сигнал или завершить.
В Linux такой идентификатор называется PID, и узнать его можно несколькими способами. В этой статье мы рассмотрим, как узнать PID процесса в Linux, а также зачем это может вам понадобиться.
Как узнать pid процесса Linux
ps aux | grep имя_процесса
Кроме нужного нам процесса, утилита также выведет PID для grep, ведь процесс был запущен во время поиска. Чтобы его убрать, добавляем такой фильтр:
Например, узнаём PID всех процессов, имя которых содержит слово «Apache»:
2. pgrep
Если вам не нужно видеть подробную информацию о процессе, а достаточно только PID, то можно использовать утилиту pgrep:
По умолчанию утилита ищет по командной строке запуска процесса, если нужно искать только по имени процесса, то надо указать опцию -f:
3. pidof
Эта утилита ищет PID конкретного процесса по его имени. Никаких вхождений, имя процесса должно только совпадать с искомым:
С помощью опции -s можно попросить утилиту выводить только один PID:
4. pstree
Утилита pstree позволяет посмотреть список дочерних процессов для определённого процесса, также их pid-идентификаторы. Например, посмотрим дерево процессов Apache:
Как узнать PID скрипта
Когда вы запускаете скрипт в оболочке, например Bash запускается процесс известный как подоболочка и выполняет последовательно все команды скрипта. Чтобы узнать PID процесса подоболочки Bash, запущенной для скрипта, обратитесь к специальной переменной $$. Эта переменная доступна только для чтения, поэтому вы не сможете ее редактировать:
Каким процессом занят файл Linux
Выше мы рассмотрели, как получить PID процесса Linux по имени, а теперь давайте узнаем PID по файлу, который использует процесс. Например, мы хотим удалить какой-либо файл, а система нам сообщает, что он используется другим процессом.
С помощью утилиты lsof можно посмотреть, какие процессы используют директорию или файл в данный момент. Например, откроем аудио-файл в плеере totem, а затем посмотрим, какой процесс использует её файл:
Здесь будет выведен только файл и PID процесса. После PID идёт одна буква, которая указывает, что делает этот процесс с файлом или папкой:
Кто использовал файл в Linux
Узнать процесс, который сейчас занимает файл, достаточно просто. Но как узнать, какой процесс обращается к файлу не надолго, например, выполняет его как программу или читает оттуда данные? Эта задача уже труднее, но вполне решаема с помощью подсистемы ядра auditd. В CentOS набор программ для работы с этой подсистемой поставляется по умолчанию, в Ubuntu же его придётся установить командой:
sudo apt install auditd
Теперь создаём правило для мониторинга. Например, отследим, кто запускает утилиту who:
Теперь выполним один раз who и посмотрим, что происходит в логе с помощью команды ausearch:
ps aux | grep 15595
Становиться понятно, что это bash.
Какой процесс использует порт в Linux
Иногда необходимо узнать PID Linux-программы, которая использует сетевой порт, например 80. Для этого можно использовать утилиту ss:
Мы видим, что это несколько процессов Apache. Использовав опцию dport, можно узнать, какой процесс отправляет данные на указанный порт:
Выводы
В этой статье мы рассмотрели, как узнать PID процесса в Linux по различным условиям: имени или файлу. Как видите, всё достаточно просто, и в считанные минуты можно можно понять, что происходит с вашей операционной системой, и какой процесс за это отвечает.
Table of Contents:
Windows использует идентификаторы процессов, отображаемые под необязательным столбцом PID в диспетчере задач, чтобы различать программы и процессы. Операционная система назначает каждому процессу идентификационный номер при запуске, чтобы отличать процессы друг от друга, не полагаясь на имена процессов. Если программа имеет PID с большим номером, это не обязательно означает, что запущено много программ; во избежание ошибок операционная система не будет немедленно переназначать используемый PID.
Системы Windows 8 скрывают PID по умолчанию. Кредит: Джо Рэдл / Новости Getty Images / Getty Images
Нахождение PID
Все PID активных программ можно найти на вкладках «Процессы», «Подробно» и «Службы» в Диспетчере задач, если включено отображение PID. PID включаются на вкладках «Сведения» и «Службы» и отключаются на вкладке «Процессы» по умолчанию в Windows 8. Чтобы включить PID на вкладке «Процессы», щелкните правой кнопкой мыши заголовок и выберите «PID» из список столбцов. Уникальный PID процесса отображается в столбце PID для каждой программы. По данным Microsoft Developer Network, PID был удален из отображения по умолчанию на вкладке «Процессы», потому что исследование Microsoft показало, что значение не имеет значения для большинства пользователей.
Идентификация идентично названных процессов
PID удерживает Windows от смешения программ; это полезно при поиске и устранении неисправностей программ, которые имеют одинаковые имена или запускают несколько экземпляров одновременно. Если у вас запущены две разные программы, использующие процессы, называемые «Мой процесс», Windows назначит разные идентификаторы PID, которые вы можете использовать для разделения программ в диспетчере задач. «Мой процесс № 1» и «Мой процесс № 2» могут делать совершенно разные вещи, но компьютер не может отличить их друг от друга без PID. Кроме того, Windows может отличать отдельные экземпляры программы мгновенного обмена сообщениями, которые могут запускаться несколько раз одновременно для одновременного многопользовательского входа в систему с PID.
Отслеживание проблемных процессов
PID может помочь в процессе устранения неполадок для программ, которые разделяют содержимое и инструкции по нескольким процессам. Такая программа, как Google Chrome, может использовать множество отдельных процессов, которые называются «Google Chrome». Каждая вкладка браузера получает свой собственный процесс, поэтому, если он сталкивается с проблемой и падает, он не удаляет другие вкладки вместе с ней. Вы можете отслеживать висячие или заблокированные вкладки с помощью PID или использовать PID, чтобы пометить вкладки, которые вы хотите оставить открытыми при закрытии висячих или замороженных вкладок в диспетчере задач.