Linux - alternatywne miejsca przechowywania pliku pid zamiast / var / run


21

Jak napisano w tytule, gdzie powinienem pozwolić skryptowi init zapisać plik pid? czy są jakieś standardowe ścieżki, które powinienem wybrać zamiast / var / run?

Czy / tmp może być dobrym miejscem do przechowywania lub mieć wady?


6
Co jest nie tak z / var / run?
Środa

To pytanie dotyczące przepełnienia stosu jest istotne: stackoverflow.com/q/5173636/1071869
Renan

jedyną złą rzeczą w / var / run jest to, że nie mam dostępu do zapisu z moim użytkownikiem do tego ..
Murko

2
@Murko powinieneś zapisać plik pid w katalogu osobistym użytkownika.
Renan

Odpowiedzi:


22

W skrócie : możesz przechowywać go w dowolnym miejscu (powiedzmy /tmplub /var/tmp), ale /var/runjest to preferowany standard.

/var/runjest standardem hierarchii systemu plików :

Ten katalog zawiera dane informacji o systemie opisujące system od momentu jego uruchomienia. Pliki w tym katalogu muszą zostać wyczyszczone (odpowiednio usunięte lub obcięte) na początku procesu rozruchu. Programy mogą mieć podkatalog / var / run; jest to zalecane w przypadku programów, które używają więcej niż jednego pliku wykonawczego. [przypis 37]

Pożądaną cechą jest to, że większość dystrybucji czyści go automatycznie (w przeciwieństwie do tego, /tmpktóre nie jest czyszczone podczas rozruchu w niektórych dystrybucjach) - pozwala to uniknąć przestarzałych plików pid:

Normalna lokalizacja plików pid to: / var / run. Większość jednorożców wyczyści ten katalog przy starcie; w Ubuntu jest to osiągane przez / var / run system plików w pamięci (tmpfs).

To twój wybór, gdzie go przechowywać, ale wybrałbym standard.

Jeśli nie masz dostępu /var/run, powinieneś zapisać plik pid w katalogu domowym użytkownika, np ~/.my_app.pid.


9

Jeśli /var/runpotrzebujesz dostępu innego niż root do zapisu , czego potrzebujesz, pamiętaj, że istnieją podkatalogi /var/run/userdla poszczególnych użytkowników. Musisz tylko uzyskać identyfikator UID bieżącego użytkownika:

/var/run/user/[$uid]

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.