[Bug 1350782] Re: Upstart does not reopen /var/log/upstart/* logfiles upon log rotation
Михаїл Т.
1350782 at bugs.launchpad.net
Wed Nov 29 20:48:43 UTC 2017
> awk | sed
As a general rule, you never need more than a single of awk, sed, grep,
cut in the same pipeline. Also, xargs (on Linux) would generate a silly
error-message (which cron will dutifully e-mail to you), if no matching
open files were found. The improved (and less prone to race-conditions)
expression for the same would be:
postrotate
lsof | awk '
$9 ~ /^\/var\/log\/upstart\/.*\.log.+/ {
service = gensub("^.*/(.*).log.*", "\\1", $9);
system("service " service " restart")
}
'
endscript
But, you only need lsof if you insist on sharedscripts (which is not in
there in the default file installed by the upstart package).
If you do NOT add the sharedscripts-verb, you can bypass the entire lsof
part, because the full path of the log being rotated will be passed to
the postrotate-script as the first argument:
postrotate
service=${1##*/}
service=${service%.log*}
service $service restart
endscript
You can also insert special handling for some of the services easier
this way, for example:
case $service in
fpm*)
exit 0
;;
.....
esac
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to upstart in Ubuntu.
https://bugs.launchpad.net/bugs/1350782
Title:
Upstart does not reopen /var/log/upstart/* logfiles upon log rotation
Status in upstart package in Ubuntu:
Confirmed
Bug description:
Note: this issue is reported from a 12.04 system, but I've confirmed
the same behavior on a 14.04 system.
Logrotate configuration for Upstart logs has no postrotate action:
/var/log/upstart/*.log {
daily
missingok
rotate 7
compress
notifempty
nocreate
}
As a result, when logs are rotated, upstart keeps open handles on
deleted log files instead of reopening the new log files:
# lsof -p1 | fgrep /var/log/upstart
. . .
init 1 root 8w REG 253,1 62 789436 /var/log/upstart/dbus.log.1 (deleted)
. . .
From this point on, all subsequent log messages are lost, delivered
into a deleted file.
I could not find a way to get the upstart init process to reopen its
log files, short of restarting _all_ services that log to
/var/log/upstart/*.log files, which does not seem like a good solution
at all.
ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: upstart 1.5-0ubuntu7.2
ProcVersionSignature: Ubuntu 3.2.0-60.91-generic 3.2.55
Uname: Linux 3.2.0-60-generic x86_64
ApportVersion: 2.0.1-0ubuntu17.6
Architecture: amd64
Date: Thu Jul 31 10:43:25 2014
InstallationMedia: Ubuntu-Server 10.04.4 LTS "Lucid Lynx" - Release amd64 (20120214.2)
MarkForUpload: True
ProcEnviron:
LC_CTYPE=en_US.UTF-8
TERM=xterm-256color
PATH=(custom, no user)
LANG=en_GB.UTF-8
SHELL=/bin/bash
SourcePackage: upstart
UpgradeStatus: Upgraded to precise on 2013-10-23 (280 days ago)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/upstart/+bug/1350782/+subscriptions
More information about the foundations-bugs
mailing list