Skip to content

naemon's logrotate leaves open file: livestatus.log.1 #146

@pbiering

Description

@pbiering

Found:

# 'lsof' report of binaries which uses files with link count = 0 (missing restart after update)
# Method3:
naemon       1634                            site1   15w      REG                8,2        264     0   12590537 /opt/omd/sites/site1/var/naemon/livestatus.log.1 (deleted)

Processes

ps w -C naemon
    PID TTY      STAT   TIME COMMAND
   1554 ?        Ss   600:33 /omd/sites/site1/bin/naemon -ud /omd/sites/site1/tmp/naemon/naemon.cfg
   1634 ?        S      3:24 /omd/sites/site1/bin/naemon -ud /omd/sites/site1/tmp/naemon/naemon.cfg
 260391 ?        S      0:01 /omd/sites/site1/bin/naemon --worker /omd/sites/site1/var/naemon/naemon.qh
 260392 ?        S      0:01 /omd/sites/site1/bin/naemon --worker /omd/sites/site1/var/naemon/naemon.qh
 260393 ?        S      0:01 /omd/sites/site1/bin/naemon --worker /omd/sites/site1/var/naemon/naemon.qh
 260394 ?        S      0:01 /omd/sites/site1/bin/naemon --worker /omd/sites/site1/var/naemon/naemon.qh
 260395 ?        S      0:01 /omd/sites/site1/bin/naemon --worker /omd/sites/site1/var/naemon/naemon.qh
 260396 ?        S      0:01 /omd/sites/site1/bin/naemon --worker /omd/sites/site1/var/naemon/naemon.qh

pstree -p 1554
naemon(1554)-+-naemon(1634)
             |-naemon(260391)
             |-naemon(260392)
             |-naemon(260393)
             |-naemon(260394)
             |-naemon(260395)
             `-naemon(260396)

PID 1634 is the child of the master process 1554

Current logrotate config

cat /opt/omd/sites/site1/etc/logrotate.d/naemon 
/omd/sites/site1/var/naemon/naemon.log {
    daily
    rotate 3650
    nocompress
    olddir /omd/sites/site1/var/naemon/archive
    dateext
    dateformat -%Y%m%d
    missingok
    notifempty
    postrotate
      [ -f /omd/sites/site1/tmp/lock/naemon.lock ] && kill -s USR1 `cat /omd/sites/site1/tmp/lock/naemon.lock`
    endscript
    create 0664 site1 site1
}

/omd/sites/site1/var/naemon/livestatus.log {
	missingok
	rotate 7
	compress
	delaycompress
	notifempty
	create 640 site1 site1
}

only send SIGUSR to master process:

cat /omd/sites/site1/tmp/lock/naemon.lock
1554

Tried to send SIGUSR1 to the related child process, but this wasn't helpful, stale log file is still open

kill -s USR1 1634

SIGUSR1 to the master process was also not helpful

kill -s USR1 1554

Looks like some more magic is needed to avoid stale log files

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions