dynamic logs

Maxim Dounin mdounin at mdounin.ru
Fri Sep 12 15:41:03 MSD 2008


Hello!

On Fri, Sep 12, 2008 at 11:10:02AM +0000, Vladan Popovic wrote:

>Igor Sysoev <is at ...> writes:
>
>> 
>> On Fri, Sep 12, 2008 at 07:38:42AM +0000, Vladan Popovic wrote:
>> 
>> > Sorry for not being more knowledgeable ...
>> > I have init.d/nginx script to manage nginx.
>> > Should i run strace /etc/init.d/nginx restart or should i run another 
>> > instruction?
>> > (i did 'strace /etc/init.d/nginx' but couldn't find the string you are 
>> > looking for)
>> 
>> Try the following:
>> 
>> 1) stop nginx via "/etc/init.d/nginx stop"
>> 
>> 2) add temporarily in nginx.conf:
>> 
>> daemon          off;
>> master_process  off;
>> 
>> This will force nginx to run single process only.
>> 
>> 3) then run nginx directly under strace:
>> 
>> strace /usr/sbin/nginx
>> 
>> 4) and make request.
>> 
>OK - i think i managed to do it ... here's the extract:
>
>open("/var/log/nginx/be-o.com", O_RDWR|O_CREAT|O_APPEND, 0644) = 14
>fstat(14, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
>fcntl(14, F_GETFL)                      = 0x8402 (flags 
>O_RDWR|O_APPEND|O_LARGEFILE)
>fcntl(14, F_SETFL, O_RDWR|O_APPEND|O_DIRECT|O_LARGEFILE) = 0
>write(14, "192.168.1.16 - - [12/Sep/2008:19"..., 196) = -1 EINVAL (Invalid 
>argument)

Could you please check if 'directio off;' helps?  It should.

Also the following patch should help without switching off 
directio:

--- a/src/core/ngx_open_file_cache.c
+++ b/src/core/ngx_open_file_cache.c
@@ -498,7 +498,7 @@ ngx_open_and_stat_file(u_char *name, ngx
      } else {
          of->fd = fd;

-        if (of->directio <= ngx_file_size(&fi)) {
+        if (!of->log && of->directio <= ngx_file_size(&fi)) {
              if (ngx_directio(fd) == -1) {
                  ngx_log_error(NGX_LOG_ALERT, log, ngx_errno,
                                ngx_directio_n " \"%s\" failed", name);



Maxim Dounin





More information about the nginx mailing list