Co to jest format pliku PID?
Plik .pid to mały plik tekstowy używany przez demony Unix i usługi działające w tle do rejestrowania własnego identyfikatora procesu (PID) podczas uruchamiania. Plik zawiera pojedynczą liczbę całkowitą w formacie dziesiętnym - PID - opcjonalnie zakończoną znakiem nowej linii, co sprawia, że typowy rozmiar pliku wynosi zaledwie od 2 do 10 bajtów.
Pliki .pid służą trzem praktycznym celom. Po pierwsze, działają jako blokada (lock): usługa odczytuje plik przy starcie i sprawdza, czy proces o tym PID nadal działa, co zapobiega uruchamianiu duplikatów. Po drugie, pozwalają skryptom init i menedżerom usług wysyłać sygnały (SIGTERM, SIGHUP) do właściwego procesu bez konieczności osobnego wyszukiwania. Po trzecie, narzędzia monitorujące używają ich do wykrywania, czy usługa uległa awarii.
Pliki te są konwencjonalnie przechowywane w /var/run/ w systemie Linux lub /tmp/ w innych systemach Unix i nazywane zgodnie z nazwą usługi - na przykład nginx.pid lub mysqld.pid. Gdy proces kończy się poprawnie, usuwa własny plik .pid; plik pozostawiony po awarii nazywany jest *stale PID file* (nieaktualnym plikiem PID) i musi zostać usunięty przed ponownym uruchomieniem usługi.
Powiązane formaty obejmują pliki .lock, które pełnią podobną rolę w zapewnianiu wzajemnego wykluczania. Nowoczesne systemy Linux korzystające z systemd coraz częściej polegają na śledzeniu procesów opartym na cgroup zamiast plików .pid, co stopniowo ogranicza ich użycie w nowszych definicjach jednostek usług.
Bezpieczeństwo
RYZYKO: LOWPliki PID to zwykły tekst zawierający tylko liczbę. Nie są wykonywalne i same w sobie nie stanowią zagrożenia dla bezpieczeństwa. Nie należy ręcznie ustawiać dowolnych PID w pliku .pid - usługi polegają na dokładności PID przy dostarczaniu sygnałów. Usunięcie nieaktualnego pliku .pid jest bezpieczne i konieczne do odblokowania restartu usługi.
Szczegóły formatu
w pigułceProgramy otwierające pliki PID
Szczegóły techniczne
specyfikacja| Zawartość pliku | Pojedyncza liczba całkowita (identyfikator procesu), opcjonalnie zakończona znakiem nowej linii |
| Typowy rozmiar pliku | 2-10 bajtów (PID w Linux mogą osiągać wartość 4 194 304, co wymaga do 7 cyfr) |
| Kodowanie | Czysty tekst ASCII; brak danych binarnych |
| Konwencjonalna ścieżka zapisu | /var/run/ w Linux; /tmp/ w innych systemach Unix |
| Konwencja nazewnictwa | Nazwa pochodząca od usługi, np. nginx.pid lub mysqld.pid |
| Cykl życia | Tworzony przy starcie demona; usuwany przy poprawnym zakończeniu; pozostaje po awarii |
| Główne cele | Zapobieganie duplikowaniu instancji usług; kierowanie sygnałów (SIGTERM, SIGHUP) do właściwego PID; umożliwienie monitorowania stanu |
| Systemy operacyjne | Linux, macOS, BSD, Unix; niektóre demony Windows przez WSL |
| Nowoczesna alternatywa | Śledzenie cgroup w systemd, co eliminuje potrzebę stosowania plików PID w nowych plikach jednostek usług |
| Typ MIME | text/plain |
| Struktura pliku | Zwykły tekst z jednym polem; brak nagłówka, schematu czy struktury binarnej |
| Wydano | 1980s (POSIX/Unix convention) |
| Najnowsza wersja | N/A (no versioned spec) |
Konwersje PID
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki PID.