Хранение PID-файла для демона, работающего от имени пользователя

есть ли предпочтительное место для хранения pid-файла для демона, который запускается как пользователь? /var/run-стандартное место, но это для пользовательского демона, поэтому у него нет прав на запись. Предположительно, мой демон будет запущен .профиль или. bashrc или что-то. Просто сохранить его в /tmp-плохая идея?

3 ответов


если он запускается для пользователя, давайте посмотрим, какое хранилище существует для конкретного пользователя.

Хммм.

вот именно! Домашний каталог. Я знал, что это придет ко мне в конце концов: -)


извините за легкий тычок. Серьезно, я бы просто спрятал PID в $HOME/.daemon.pid или ~/.daemon.pid (Как вы называете файл, зависит от вас, конечно).

Это, конечно, предполагая, что у вас будет только один демон, работающий для пользователя. Если нет, вам нужно будь немного хитрее.


и, надеюсь, развеять ваши опасения, что пользователь случайно удалит неизвестные файлы в своем домашнем каталоге, поэтому вы делаете его "скрытым", запустив его с помощью . символ.

большинство неопытных пользователей никогда не должны даже посмотреть эти и опытные пользователи должны знать лучше, чем возиться с ними.


на спецификация XDG Basedir определяет, где вы должны хранить эти.
Переменная $XDG_RUNTIME_DIR определяет его местоположение, хотя оно не имеет значения по умолчанию.
Наиболее распространенным резервным вариантом (если переменная не задана) является /tmp/service-$USER.id.

Это помогает сохранить незагроможденные homedirs, сохраняя при этом все данные времени выполнения в


Я предлагаю вам перейти к подкаталогу в домашнем каталоге пользователя.

~/.programname/.pid

Если есть какие-либо другие данные конфигурации пользователя, вы можете сохранить их здесь, чтобы избежать загромождения домашнего каталога.