Linux - альтернативные места, где хранить файл pid вместо /var/run

Как написано в заголовке, где я должен позволить скрипту инициализации написать файл pid? Есть ли какие-нибудь стандартные пути, которые я должен выбрать вместо /var/run?

Может ли /tmp быть хорошим местом для хранения или в этом есть недостатки?

2 ответа

Решение

Короче говоря, вы можете хранить его где угодно (скажем, /tmp или же /var/tmp), но /var/run является предпочтительным стандартом.

/var/run такое стандарт иерархии файловой системы:

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

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

Обычное расположение для pidfiles - /var/run. Большинство юниоров очищает этот каталог при загрузке; в Ubuntu это достигается путем / var / запуска файловой системы в памяти (tmpfs).

Это ваш выбор, где хранить его, но я бы пошел со стандартом.

Если у вас нет доступа к /var/run, вы должны хранить файл pid в домашнем каталоге пользователя, например ~/.my_app.pid,

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

/var/run/user/[$uid]

Другие вопросы по тегам