Co to jest plik .pid i co zawiera?

199

Ostatnio natknąłem się na plik z rozszerzeniem .pid i przeglądałem go, ale nie znalazłem wiele. Dokumentacja mówi:

Plik Pid to plik zawierający numer identyfikacyjny procesu (pid), który jest przechowywany w dobrze zdefiniowanym miejscu systemu plików, umożliwiając innym programom znalezienie pid działającego skryptu.

Czy ktoś może rzucić na to więcej światła lub poprowadzić mnie do szczegółów zawartych w pliku pid?

ifixthat
źródło

Odpowiedzi:

210

Pliki pid zawierają identyfikator procesu (liczbę) danego programu. Na przykład Apache HTTPD może zapisać swój główny numer procesu do pliku pid - który jest zwykłym plikiem tekstowym, i nic więcej - i później wykorzystać zawarte w nim informacje, aby się zatrzymać. Możesz także użyć tych informacji, aby samemu zabić proces, używająccat filename.pid | xargs kill

Rafael Steil
źródło
4
Dlaczego więc nie sprawdzić procesu według nazwy? Po co męczyć się z utrzymywaniem plików .pid, kiedy można po prostu uruchomić „pidof $ nazwa_procesu” i uzyskać identyfikator?
Shnatsel
14
@Shnatsel: ponieważ mogą być uruchomione dwa procesy z tą nazwą i musisz wiedzieć, który z nich zarządza tym plikiem PID. Są inne powody, więcej szczegółów można znaleźć tutaj: unix.stackexchange.com/questions/12815/…
user4815162342
2
W takim przypadku byłyby 2 pliki pid i masz do czynienia z tym samym problemem, co przy wyszukiwaniu PID. Pliki pid nie przynoszą żadnego pożytku, a jedynie komplikują rzeczy w tym scenariuszu, a także w każdym innym scenariuszu, jaki mogę wymyślić. Podejrzewam, że albo pojawili się przed procfsami, albo są używane jako narzędzie do przenoszenia, ponieważ interfejsy procfs różnią się np. W Solarisie są zupełnie inne niż w Linuksie.
Shnatsel
3
Tylko jedna rzecz: echo filename.pid | xargs killnie zabije procesu. Chyba miałeś na myśli: echo $(cat filename.pid) | xargs kill lub echo <process ID> | xargs kill.
Alexandro de Oliveira
2
@AlexandrodeOliveira Czy istnieje korzyść z używania echa i kota zamiast tylko cat filename.pid | xargs kill?
Simon A. Eugster,
-1

Aby zrozumieć pliki pid, zapoznaj się z tym DOC

Czasami niektóre aplikacje wymagają dodatkowej obsługi dodatkowych wtyczek i narzędzi. Śledzi więc te narzędzia i proces id uruchomionych wtyczek przy użyciu tego pliku pid w celach informacyjnych.

Dlatego przy każdym ponownym uruchomieniu aplikacji wszystkie niezbędne wtyczki i aplikacje zależne muszą być ponownie uruchomione, ponieważ plik pid stanie się nieaktualny.

Mithun Sasidharan
źródło
8
Twój pierwszy link tak naprawdę nie odpowiada na pytanie.
Brian
5
Podczas gdy linkowany materiał może teoretycznie odpowiedzieć na pytanie, lepiej byłoby zawrzeć tutaj istotne części odpowiedzi i podać link jako odniesienie.
Toby Speight