Attempt to keep PID and logfile as netdisco user even when running as root

This commit is contained in:
Oliver Gorwits
2014-07-31 23:13:03 +01:00
parent 04d89320a8
commit aaa3fe61c1
2 changed files with 23 additions and 5 deletions

View File

@@ -1,16 +1,20 @@
2.029000
[ENHANCEMENTS]
[NEW FEATURES]
* [#108] Port Bounce port control feature (down and up in succession)
* Support for stuffing other locations into @INC at runtime
[ENHANCEMENTS]
* Reports config is now a list (see ReleaseNotes)
* Add "AP" as a hint for WAP support
* Attempt to keep PID and logfile as netdisco user even when running as root
[BUG FIXES]
* Missing action to netdisco-do should not throw Perl error
* Sort CDP/LLDP data to be more consistent when multiple neighbors on a port
* Add "AP" as a hint for WAP support
2.028013 - 2014-07-31

View File

@@ -41,6 +41,7 @@ BEGIN {
use Daemon::Control;
use Filesys::Notify::Simple;
use IO::File;
use App::Netdisco::Environment;
my $config = ($ENV{PLACK_ENV} || $ENV{DANCER_ENVIRONMENT}) .'.yml';
@@ -53,6 +54,19 @@ my $gid = (stat($netdisco->stringify))[5] || 0;
my $log_dir = dir($home, 'logs');
mkdir $log_dir if ! -d $log_dir;
chown $uid, $gid, $log_dir;
my $pid_file = file($home, 'netdisco-web.pid');
my $log_file = file($log_dir, 'netdisco-web.log');
# change ownership of key files to be netdisco user
foreach my $file ($pid_file, $log_file) {
unless (-e $file) {
sysopen my $fh, $file, O_WRONLY|O_CREAT|O_NONBLOCK|O_NOCTTY;
close $fh;
}
chown $uid, $gid, $file;
}
Daemon::Control->new({
name => 'Netdisco Web',
@@ -62,9 +76,9 @@ Daemon::Control->new({
'--user', $uid, '--group', $gid,
@args, $netdisco->stringify
],
pid_file => file($home, 'netdisco-web.pid'),
stderr_file => file($log_dir, 'netdisco-web.log'),
stdout_file => file($log_dir, 'netdisco-web.log'),
pid_file => $pid_file,
stderr_file => $log_file,
stdout_file => $log_file,
redirect_before_fork => 0,
((scalar grep { $_ =~ m/port/ } @args) ? ()
: (uid => $uid, gid => $gid)),