Администрирование · 8 мин
Как получить PID процесса 1С
Как узнать PID процесса 1С через диспетчер задач, командную строку, PowerShell и средствами платформы. Проверка результата, ошибки и FAQ.
PID (идентификатор процесса) нужен администратору 1С в нескольких типовых ситуациях: завершить зависший сеанс, найти процесс, который держит файл базы или порт, собрать диагностические данные, настроить мониторинг. Способ получения PID зависит от того, какой именно процесс вас интересует — клиентское приложение (1cv8.exe, 1cv8c.exe), сервер агента (ragent), менеджер кластера (rmngr) или рабочий процесс (rphost).
На одной машине одновременно может работать несколько процессов 1С, поэтому просто «найти процесс» недостаточно — нужно уметь отличить нужный по имени, порту или дополнительным признакам. Ниже разобраны практические способы для Windows и Linux, а также вариант получения PID программно через встроенный язык 1С.
Какие процессы 1С существуют и зачем различать их PID
Прежде чем искать PID, определите, какой компонент 1С вам нужен. Клиентская часть запускается как 1cv8.exe (толстый и тонкий клиент) или 1cv8c.exe (тонкий клиент). Сервер 1С:Предприятия состоит из агента ragent, менеджера кластера rmngr и одного или нескольких рабочих процессов rphost, которые и выполняют прикладной код.
Ошибка на этом этапе типична: администратор завершает первый попавшийся rphost, хотя сеанс пользователя обслуживал другой рабочий процесс. В результате «зависший» сеанс остаётся, а у части пользователей обрывается работа. Поэтому PID всегда стоит сопоставлять с конкретным сеансом или портом, а не брать процесс «наугад».
Как узнать PID через диспетчер задач Windows
Самый наглядный способ — графический. Откройте Диспетчер задач сочетанием Ctrl+Shift+Esc, перейдите на вкладку «Подробности» (в старых версиях Windows — «Процессы»). Если столбца PID нет, щёлкните правой кнопкой по заголовку любого столбца и отметьте пункт «ИД процесса (PID)».
Отсортируйте список по имени и найдите 1cv8.exe, ragent.exe, rmngr.exe или rphost.exe. Значение в столбце PID — искомый идентификатор. Для клиентского приложения можно также на вкладке «Процессы» щёлкнуть правой кнопкой по строке 1С и выбрать «Перейти к деталям» — откроется вкладка «Подробности» с уже выделенным процессом.
- 1Нажмите Ctrl+Shift+Esc
- 2Откройте вкладку «Подробности»
- 3Добавьте столбец «ИД процесса (PID)» через контекстное меню заголовка
- 4Найдите 1cv8.exe, ragent, rmngr или rphost и считайте PID
- 5При необходимости сверьте пользователя и потребление памяти, чтобы выбрать нужный процесс
Как получить PID через командную строку и PowerShell
Классическая команда Windows — tasklist с фильтром по имени образа. Она выводит список процессов с PID и работает на любой машине без дополнительных настроек.
tasklist /FI "IMAGENAME eq rphost.exe"
tasklist /FI "IMAGENAME eq 1cv8.exe"PowerShell даёт больше возможностей: можно фильтровать по имени, сортировать по потреблению памяти и сразу получать путь к исполняемому файлу, что помогает отличить несколько установленных версий платформы.
Get-Process rphost, ragent, rmngr, 1cv8 -ErrorAction SilentlyContinue | Select-Object Id, ProcessName, Path, WorkingSet64Как связать PID с сетевым портом
Если нужно понять, какой процесс занимает порт кластера (по умолчанию диапазон 1540–1591), используйте netstat с ключом -o — он показывает PID владельца соединения. Затем по PID находите сам процесс.
netstat -ano | findstr :1541Последний столбец вывода — PID процесса, слушающего порт. Для сервера 1С это обычно ragent (порт 1540) или rmngr (порт 1541).
Как узнать PID процесса 1С в Linux
На Linux-сервере используйте ps с фильтрацией или утилиту pgrep, которая сразу возвращает PID по имени процесса.
ps aux | grep -E 'ragent|rmngr|rphost'
pgrep -a rphostКлюч -a у pgrep добавляет к PID полную командную строку запуска — по ней видно экземпляр кластера и рабочие каталоги. Чтобы связать процесс с портом, подойдёт команда ss или lsof.
ss -ltnp | grep 1540
lsof -i :1541Как получить PID программно из 1С
Иногда PID нужен прямо в коде — например, для логирования или самодиагностики клиентского приложения. Встроенный язык не имеет штатной функции «мой PID», поэтому используют обходные пути: запрос к WMI на Windows или чтение системных данных.
// Windows: PID текущего клиентского процесса через WMI
Локатор = Новый COMОбъект("WbemScripting.SWbemLocator");
Сервис = Локатор.ConnectServer(".", "root\cimv2");
Выборка = Сервис.ExecQuery("Select ProcessId from Win32_Process Where Name = '1cv8.exe'");
Для Каждого Процесс Из Выборка Цикл
Сообщить("PID: " + Процесс.ProcessId);
КонецЦикла;Учтите, что запрос вернёт все процессы 1cv8.exe на машине, включая чужие сеансы в терминальном режиме. Для точного определения «своего» процесса дополнительно фильтруйте по командной строке запуска (свойство CommandLine содержит параметры соединения) или по пользователю сеанса.
Как проверить, что вы нашли нужный процесс
Найденный PID стоит верифицировать перед любыми действиями — особенно перед завершением процесса. Сопоставьте идентификатор с данными консоли кластера 1С: в консоли администрирования у каждого рабочего процесса и сеанса указан PID, который можно сверить с системным списком.
Как проверить результат
Соответствует цели: 1cv8 для клиента, rphost для рабочего процесса
Имя другое — вы смотрите не тот процесс
Совпадает с PID в диспетчере задач или ps
Значения различаются — возможно, процесс перезапустился
Учётная запись ожидаемая (например, служебная учётка сервера 1С)
Процесс запущен под другим пользователем
Типичные ошибки и ограничения
Помните про права доступа: процессы службы агента сервера 1С запущены под служебной учётной записью, и диспетчер задач без повышенных прав может не показывать их полностью. Запускайте консоль от имени администратора, если процесс не виден.
FAQ
Чем отличается PID от номера сеанса в 1С?
Номер сеанса — внутренняя нумерация кластера 1С, а PID — идентификатор процесса операционной системы. Один рабочий процесс rphost с одним PID может обслуживать несколько сеансов одновременно, поэтому эти величины не взаимозаменяемы.
Почему в диспетчере задач не видно столбца PID?
Столбец скрыт по умолчанию. Откройте вкладку «Подробности», щёлкните правой кнопкой мыши по заголовку любого столбца и включите пункт «ИД процесса (PID)» в контекстном меню.
Как узнать, какой rphost обслуживает конкретного пользователя?
Откройте консоль администрирования сервера 1С, найдите сеанс пользователя и посмотрите, каким рабочим процессом он обслуживается — там указан PID этого процесса. Сверьте его с системным списком процессов.
Можно ли получить PID службы агента сервера 1С одной командой?
Да. В Windows выполните sc queryex с именем службы агента — в выводе будет строка PID. В Linux используйте systemctl show с параметром MainPID для соответствующего юнита или pgrep ragent.
Что делать, если процессов 1cv8.exe несколько и непонятно, какой мой?
В PowerShell выведите командную строку каждого процесса через Get-CimInstance Win32_Process с фильтром по имени: в CommandLine видны параметры подключения — имя базы, сервер и режим запуска, по которым можно определить нужный экземпляр.
Опасно ли просто смотреть PID?
Нет, чтение информации о процессах полностью безопасно и никак не влияет на работу 1С. Риск возникает только при активных действиях — завершении процесса или изменении его приоритета.
Что важно запомнить
PID процесса 1С проще всего узнать через диспетчер задач с включённым столбцом «ИД процесса», из командной строки — через tasklist или pgrep, а связь с портом — через netstat -o или ss. Перед завершением процесса всегда сверяйте PID с консолью кластера, иначе можно оборвать чужие сеансы.