Мой вопрос связан с this question, но рассматриваемые процессы выполняются cron и пользователями без полномочий root. Таким образом, многие пользователи на самом деле не имеют домашних дисков (или их домашние директории указывают на /usr/share/package_name
, что не является идеальным местом для файла PID).Предпочтительное место для PID-файла системного демона запускается как пользователь без полномочий root
Хранение в /var/run
проблематично, потому что этот каталог не доступен для записи, кроме как с помощью root.
Я мог бы использовать /tmp
, но мне интересно, идеально ли это по соображениям безопасности.
Я могу организовать сценарий запуска для создания каталога в /var/run
, который принадлежит соответствующему пользователю (я не могу сделать это при времени установки пакета, так как /var
часто монтируется как tmpfs, так что он не является постоянным).
Какая у вас лучшая практика?
У меня есть идея. Что делать, если вы используете/tmp, но ищете pidfile, который называется 'yourdaemon.pid.UNIQUE_KEY' и принадлежит пользователю демона? – hek2mgl
@ hek2mgl: 'UNIQUE_KEY' должен быть случайным, но это имеет некоторые возможности. Это делает обнаружение PID-файла немного раздражающим, поскольку демонам необходимо прочитать все файлы в '/ tmp/*' и сравнить с ожидаемым шаблоном и собственностью, но, похоже, он должен быть безопасным. – Flimzy
@ hek2mgl: Если вы хотите превратить это в ответ, я буду его голосовать. И в этот момент я бы сказал, что это лидирует для принятия. – Flimzy