Очевидно, что существует множество разных причин и, следовательно, много решений для этой проблемы. Чтобы выбросить мой микс, мы обновили сборку (System.Net.Http), которая ранее напрямую ссылалась в нашем веб-проекте на версию, управляемую NuGet. Это устранило прямую ссылку в этом проекте, но наш тестовый проект по-прежнему содержал прямую ссылку. Обновление обоих проектов для использования сборки, управляемой NuGet, разрешило проблему.
Необходимо создать подкаталог как /var/log/mydaemon
наличие пользовательского владения демона
Как корень, создайте файл журнала там и измените владельца файлов на пользователя веб-сервера:
# touch /var/log/myserver.log
# chown wwwuser /var/log/myserver.log
Затем сервер может записать в файлы, если выполнено как пользователь wwwuser
. Это не получит вращение автоматической записи, все же. Необходимо добавить файл журнала к /etc/logrotate.conf
или /etc/logrotate.d/...
и заставить сервер вновь открыть файл журнала, когда logrotate сигнализирует, что он должен.
Вы могли бы также использовать syslog
для входа, если Ваш сценарий того соответствия лучше.
Две опции:
root
, открывают файл, затем отбрасывают полномочия с setuid
. (Я не помню точных системных вызовов отбрасывания полномочий.) необходимо будет сделать это так или иначе, если Вы хотите связать с портом TCP 80 или каким-либо портом ниже 1024. Файлы под /var/log
автоматически не повернуты; вместо этого, вращением управляют /etc/logrotate.conf
и файлы под /etc/logrotate.d
.