[sheepdog-users] logrotate

Valerio Pachera sirio81 at gmail.com
Tue Oct 14 14:47:39 CEST 2014


2014-10-14 8:42 GMT+02:00 Hitoshi Mitake <mitake.hitoshi at lab.ntt.co.jp>:
> Can I close the issue:
> https://bugs.launchpad.net/sheepdog-project/+bug/1371434
> ?

Yes, It's invalid.

I've been looking at sheepdog sources but I can't find where
'rotate_log()' is declared.
What we need is simply to close and re-open the log file.

What do you think about:

1) Find out if the function 'rotate_log()' may overlap with linux 'logrotate'.
2) Create a /var/run/sheep.pid. Distributions' init scripts can simply
send -HUP to the right pid (remember we have 2).
3) Debian and other distros create their own init script and logrotate
config file.


*) Debian specific:

> Currently I don't know why other daemon processes on debian can adopt
> debian's logrotate (for me, there's no event for detecting rename of
> logfile). It should be solved in the future. But let's use the
> workaround for now.

It's not a sheepdog related issue, it was more my mistake.
In my first configuration I was not sending any -HUP singnal.
Looking at already existing configurations, I see that each time a
daemon is involved, -HUP is sent to rotate the log.

this is the chain I see:
  logrotate -> init script -> start_stop_daemon -> HUP

Here's how rsyslog file get rotated.

/var/log/syslog
{
        rotate 7
        daily
        missingok
        notifempty
        delaycompress
        compress
        postrotate
                invoke-rc.d rsyslog rotate > /dev/null
        endscript
}

less /etc/init.d/rsyslog

do_rotate() {
        DAEMON="$RSYSLOGD_BIN"
        PIDFILE="$RSYSLOGD_PIDFILE"

        start-stop-daemon --stop --signal HUP --quiet --pidfile
$PIDFILE --exec $DAEMON
}

This is another example about samba

/var/log/samba/log.nmbd {
        weekly
        missingok
        rotate 7
        postrotate
                [ ! -f /var/run/samba/nmbd.pid ] || kill -HUP `cat
/var/run/samba/nmbd.pid`
        endscript
        compress
        notifempty
}

/var/log/samba/log.smbd {
        weekly
        missingok
        rotate 7
        postrotate
                /etc/init.d/samba reload > /dev/null
        endscript
        compress
        notifempty
}

less /etc/init.d/samba
        reload)
                if [ "$RUN_MODE" != "inetd" ]; then
                        log_daemon_msg "Reloading /etc/samba/smb.conf"
"smbd only"

                        start-stop-daemon --stop --quiet --signal HUP
--pidfile $SMBDPID

                        log_end_msg 0
                fi
                ;;



More information about the sheepdog-users mailing list