журнал времени открытия и закрытия программы

Единственный способ сделать это - перекомпилировать nginx :( после редактирования src/os/unix/ngx_files.c и изменения маски создания файла в ngx_open_tempfile с 0600 на 0660 (или любой другой perms, который вам нужен).

Изменение umask в скрипте nginx init не помогает из-за значения 0600.

Нет никаких user:, group: или other: настроек для client_body_temp_path, как для модуля прокси.

Хотя функция ngx_open_tempfile считывает переменную access, которая в противном случае может быть установлена на что-то иное, чем 0600 вызовом ngx_conf_set_access_slot, как для этих модулей:

src/http/modules/ngx_http_uwsgi_module.c
171:      ngx_conf_set_access_slot,

src/http/modules/ngx_http_dav_module.c
102:      ngx_conf_set_access_slot,

src/http/modules/ngx_http_scgi_module.c
111:      ngx_conf_set_access_slot,

src/http/modules/ngx_http_fastcgi_module.c
254:      ngx_conf_set_access_slot,

src/http/modules/ngx_http_proxy_module.c
291:      ngx_conf_set_access_slot,

она не доступна для клиентского кода, который является частью ядра nginx. Отсюда и необходимость в перекомпиляции.

Помимо обновления 0600 до 0660 вам нужно chgrp your_app_server_group директории client_body_temp_path до группы, к которой принадлежит ваше приложение, а затем также установите на него setgid (chmod g+s your_app_server_group), чтобы файлы, записанные в него nginx, принадлежали этой группе.

4
12.01.2016, 21:25
1 ответ

В итоге я использовал следующий сценарий для запуска программы и заменил его указателем по умолчанию на приложение.

#!/bin/bash
echo -n "$(date +%s)" >> ~/myapplog.log
/application_path/
echo ",$(date +%s)" >> ~/myapplog.log

Он в основном регистрирует время запуска и остановки приложения в виде отметки времени для каждого сеанса в новой строке, разделенной запятой. например: 1452663495,1452663502

Вы можете изменить (дата +% S) на нужный вам формат (дату см. на странице руководства)

0
27.01.2020, 20:50

Теги

Похожие вопросы