Linux - альтернативні місця, де зберігати pid-файл замість / var / run


21

Як написано в заголовку, де я повинен дозволити скрипту init написати файл pid? Чи є стандартні шляхи, які я повинен вибрати замість / var / run?

Чи може / tmp бути хорошим місцем, де його зберігати, або в цьому є недоліки?


6
Що не так з / var / run?
заарештовано

Це запитання щодо переповнення стека актуальне: stackoverflow.com/q/5173636/1071869
Ренан

Єдина помилкова річ з / var / run - це те, що я не маю доступу для запису з моїм користувачем до неї ..
Murko

2
@Murko, тоді ви повинні зберігати pid-файл у домашній каталог користувача.
Ренан

Відповіді:


22

Коротше кажучи : ви можете зберігати його в будь-якому місці (скажімо, /tmpабо /var/tmp), але /var/runце кращий стандарт.

/var/runє стандартом ієрархії файлової системи :

Цей каталог містить дані про системну інформацію, що описують систему з моменту її завантаження. Файли в цьому каталозі повинні бути очищені (видалені або усічені відповідно) на початку процесу завантаження. Програми можуть мати підкаталог / var / run; це рекомендується для програм, які використовують більше одного файлу часу виконання. [виноска 37]

І бажаною особливістю є те, що більшість дистрибутивів очищають його автоматично (на відміну від тих, /tmpщо не очищаються при завантаженні в деяких дистрибутивах) - це дозволяє уникнути застарілих файлів-підручників:

Нормальне місце для pidfiles - / var / run. Більшість уніцій очистить цей каталог під час завантаження; в Ubuntu це досягається шляхом / var / run файлової системи пам'яті (tmpfs).

Це ваш вибір, де його зберігати, але я б пішов зі стандартом.

Якщо у вас немає доступу /var/run, слід зберегти pid-файл у домашній довідник користувача, наприклад ~/.my_app.pid.


9

Якщо доступ до /var/runпотрібного запису немережевий, то зауважте, що існують підкаталоги /var/run/userдля окремих користувачів. Вам просто потрібно отримати UID поточного користувача:

/var/run/user/[$uid]

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.