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