From 5914a38bbb2c69d9b2a47f1a128b2388f52c333e Mon Sep 17 00:00:00 2001 From: Nigel Kukard <nkukard@lbsd.net> Date: Sun, 23 Jun 2013 14:35:12 +0000 Subject: [PATCH] Added daemonize function for future use --- opentrafficshaperd | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/opentrafficshaperd b/opentrafficshaperd index 949f7dd..0c57692 100755 --- a/opentrafficshaperd +++ b/opentrafficshaperd @@ -27,6 +27,7 @@ use lib('/usr/local/lib/opentrafficshaper-1.0','/usr/lib/opentrafficshaper-1.0', use Config::IniFiles; use Getopt::Long; use POE; +use POSIX qw(setsid); use Time::HiRes qw(time); # Our own stuff @@ -281,4 +282,29 @@ sub plugin_register { return 0; } +# NK: Needs work +# Become daemon +sub daemonize { + chdir '/' + or die "Can't chdir to /: $!"; + + open STDIN, '/dev/null' + or die "Can't read /dev/null: $!"; + + open STDOUT, '> /var/log/ppp-gatekeeper/stdout.log' + or die "Can't open stdout log: $!"; + + defined(my $pid = fork) + or die "Can't fork: $!"; + + exit if $pid; + + setsid + or die "Can't start a new session: $!"; + + open STDERR, '> /var/log/ppp-gatekeeper/stderr.log' + or die "Can't open stderr log: $!"; +} + + # vim: ts=4 -- GitLab