Хранение файла pid для запуска демона как пользователя
Есть ли предпочтительное место для хранения файла pid для демона, который запускается как пользователь? /var/run - стандартное место, но это для пользователя-демона, поэтому он не имеет прав на запись. Предположительно, мой демон будет запущен из .profile или .bashrc или что-то еще. Просто сохраняет его в /tmp плохой идеей?
Ответы
Ответ 1
Если он запускается для пользователя, давайте посмотрим, какой тип хранилища существует для пользователя.
Хммм.
Что это! Домашний каталог. Я знал, что со временем это придет: -)
Извините за легкий удар. Серьезно, я бы просто запустил PID в $HOME/.daemon.pid
или ~/.daemon.pid
(как вы назвали файл для вас, конечно).
Это, конечно, предполагается, что для пользователя будет только один демон. Если нет, вам нужно быть немного сложнее.
И, надеюсь, у вас возникнут опасения, что пользователь случайно удалит неизвестные файлы в своем домашнем каталоге, поэтому сделайте его "скрытым", запустив его с символом .
.
Большинство неопытных пользователей никогда не должны даже видеть, что эти и опытные пользователи должны знать лучше, чем гадать с ними.
Ответ 2
Спецификация XDG Basedir определяет, где вы должны хранить их.
Переменная $XDG_RUNTIME_DIR
определяет ее местоположение, хотя она не имеет значения по умолчанию.
Наиболее распространенный резерв (если переменная не установлена) составляет /tmp/service-$USER.id
.
Это помогает поддерживать незагроможденные homedirs, сохраняя при этом все данные во время выполнения
Ответ 3
Я предлагаю вам перейти в подкаталог в домашнем каталоге пользователя.
~/.programname/.pid
Если есть другие данные конфигурации пользователя, вы также можете сохранить это здесь, чтобы избежать загромождения домашнего каталога.