[sheepdog] [PATCH v2 2/2] sheep: rotate log with SIGHUP
Hitoshi Mitake
mitake.hitoshi at gmail.com
Tue Oct 22 09:19:46 CEST 2013
At Tue, 22 Oct 2013 14:21:59 +0800,
Liu Yuan wrote:
>
> On Sat, Oct 19, 2013 at 11:35:34PM +0900, Hitoshi Mitake wrote:
> > From: Hitoshi Mitake <mitake.hitoshi at lab.ntt.co.jp>
> >
> > Current sheep process rotates log when the log file reaches its
> > maximum size (500MB). But it is not comfortable for periodical backup
> > of log files.
> >
> > Rotating log with catching SIGHUP is a common behavior of unix
> > processes. This patch implements the behavior in sheep daemon.
> >
> > Example of rog lotation:
> > $ sudo sheep -P /tmp/sheep/sheep.pid -c local /tmp/sheep
> > $ sudo kill -SIGHUP `sudo cat /tmp/sheep/sheep.pid`
> >
> > Signed-off-by: Hitoshi Mitake <mitake.hitoshi at lab.ntt.co.jp>
> > ---
> > CHANGELOG.md | 1 +
> > include/logger.h | 2 ++
> > lib/logger.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
> > sheep/sheep.c | 11 +++++++++++
> > 4 files changed, 68 insertions(+), 2 deletions(-)
> >
> > diff --git a/CHANGELOG.md b/CHANGELOG.md
> > index 771d69b..5fde0ee 100644
> > --- a/CHANGELOG.md
> > +++ b/CHANGELOG.md
> > @@ -14,3 +14,4 @@ DOG COMMAND INTERFACE:
> > SHEEP COMMAND INTERFACE:
> > - improvements of help messages
> > - change format of the size format in -j (journaling) and -w (object cache) options. The new format is: n[TtGgMmKkb]. e.g. "-j size=1024M".
> > + - rotate log when sheep process catches SIGHUP signal
> > diff --git a/include/logger.h b/include/logger.h
> > index 3f9292d..a86c369 100644
> > --- a/include/logger.h
> > +++ b/include/logger.h
> > @@ -90,4 +90,6 @@ void sd_backtrace(void);
> > void set_loglevel(int new_loglevel);
> > int get_loglevel(void);
> >
> > +extern pid_t logger_pid;
> > +
> > #endif /* LOG_H */
> > diff --git a/lib/logger.c b/lib/logger.c
> > index bf1a605..4ee3027 100644
> > --- a/lib/logger.c
> > +++ b/lib/logger.c
> > @@ -114,12 +114,39 @@ static const char *log_name;
> > static char *log_nowname;
> > int sd_log_level = SDOG_INFO;
> > static pid_t sheep_pid;
> > -static pid_t logger_pid;
> > +pid_t logger_pid = -1;
> > static key_t semkey;
> > static char *log_buff;
> >
> > static int64_t max_logsize = 500 * 1024 * 1024; /*500MB*/
> >
> > +static void block_sighup(void)
> > +{
> > + /* this function is used for protecting log_fd */
>
> Put the function description above the function name.
I'll clean it in v3,
Thanks,
Hitoshi
More information about the sheepdog
mailing list