Что такое формат файла PID?
Файл .pid - это небольшой текстовый файл, используемый демонами Unix и фоновыми службами для записи собственного идентификатора процесса (PID) при запуске. Файл содержит одно целое десятичное число - PID - за которым при желании может следовать символ новой строки, что делает типичный размер файла всего от 2 до 10 байт.
Файлы .pid служат трем практическим целям. Во-первых, они действуют как блокировка: служба считывает файл при запуске и проверяет, запущен ли еще процесс с этим PID, предотвращая запуск дублирующих экземпляров. Во-вторых, они позволяют сценариям инициализации и менеджерам служб отправлять сигналы (SIGTERM, SIGHUP) нужному процессу без отдельного поиска. В-третьих, инструменты мониторинга используют их для обнаружения сбоев в работе службы.
Файлы традиционно хранятся в /var/run/ в Linux или в /tmp/ в других системах Unix и называются в честь владельца службы - например, nginx.pid или mysqld.pid. Когда процесс завершается корректно, он удаляет свой собственный файл .pid; файл, оставшийся после сбоя, называется *устаревшим PID-файлом* (stale PID file) и должен быть удален перед перезапуском службы.
Связанные форматы включают файлы .lock, которые выполняют аналогичную роль взаимного исключения. Современные системы Linux под управлением systemd все чаще полагаются на отслеживание процессов на основе cgroup вместо файлов .pid, что постепенно сокращает их использование в новых определениях юнитов служб.
Безопасность и защита
РИСК: LOWФайлы PID представляют собой обычный текст, содержащий только число. Они не могут исполняться и сами по себе не представляют угрозы безопасности. Не устанавливайте произвольные PID в файле .pid вручную - службы полагаются на точность PID для доставки сигналов. Удаление устаревшего .pid безопасно и необходимо для разблокировки перезапуска службы.
Детали формата
в двух словахПрограммы, открывающие файлы PID
Технические подробности
глубокая спецификация| Содержимое файла | Одно десятичное целое число (идентификатор процесса), опционально сопровождаемое новой строкой |
| Типичный размер файла | 2-10 байт (PID в Linux достигают 4 194 304, что требует до 7 цифр) |
| Кодировка | ASCII обычный текст; без бинарных данных |
| Стандартный путь хранения | /var/run/ в Linux; /tmp/ в других системах Unix |
| Соглашение об именовании | Называется в честь владеющей службы, например, nginx.pid или mysqld.pid |
| Жизненный цикл | Создается при запуске демона; удаляется при чистом выходе; остается устаревшим после сбоя |
| Основные цели | Предотвращение дублирования экземпляров службы; маршрутизация сигналов (SIGTERM, SIGHUP) на правильный PID; обеспечение мониторинга состояния |
| Операционные системы | Linux, macOS, BSD, Unix; некоторые демоны Windows через WSL |
| Современная альтернатива | Отслеживание cgroup в systemd, что устраняет необходимость в PID-файлах в новых файлах юнитов служб |
| MIME-тип | text/plain |
| Структура файла | Простой текст с одним полем; без заголовка, без схемы, без бинарной структуры |
| Выпущен | 1980s (POSIX/Unix convention) |
| Последняя версия | N/A (no versioned spec) |
Конвертации PID
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах PID.