From 65c13f1758ea591ce9dcaf4e467c82f85f375c3a Mon Sep 17 00:00:00 2001 From: Cameron Norman Date: Sat, 25 Oct 2014 18:25:03 -0700 Subject: [PATCH 1/4] Decouple logging and daemonization --- Daemon.cpp | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/Daemon.cpp b/Daemon.cpp index ea98378b..284466f2 100644 --- a/Daemon.cpp +++ b/Daemon.cpp @@ -84,18 +84,13 @@ namespace i2p // initialize log if (isLogging) { - if (isDaemon) - { - std::string logfile_path = IsService () ? "/var/log" : i2p::util::filesystem::GetDataDir().string(); + std::string logfile_path = IsService () ? "/var/log" : i2p::util::filesystem::GetDataDir().string(); #ifndef _WIN32 - logfile_path.append("/i2pd.log"); + logfile_path.append("/i2pd.log"); #else - logfile_path.append("\\i2pd.log"); + logfile_path.append("\\i2pd.log"); #endif - StartLog (logfile_path); - } - else - StartLog (""); // write to stdout + StartLog (logfile_path); } d.httpServer = new i2p::util::HTTPServer(i2p::util::config::GetArg("-httpport", 7070)); From 61932ff49fefbc6b8bdff9f4675c6197a78299a9 Mon Sep 17 00:00:00 2001 From: Cameron Norman Date: Sat, 25 Oct 2014 18:40:11 -0700 Subject: [PATCH 2/4] Rename init.d to i2pd.init --- debian/{init.d => i2pd.init} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename debian/{init.d => i2pd.init} (100%) diff --git a/debian/init.d b/debian/i2pd.init similarity index 100% rename from debian/init.d rename to debian/i2pd.init From ced41496796d93a3f407a420d81b721d2a913516 Mon Sep 17 00:00:00 2001 From: Cameron Norman Date: Sat, 25 Oct 2014 18:41:04 -0700 Subject: [PATCH 3/4] Implement reload in init script --- debian/i2pd.init | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/debian/i2pd.init b/debian/i2pd.init index 79dea50a..eda135c6 100644 --- a/debian/i2pd.init +++ b/debian/i2pd.init @@ -57,10 +57,10 @@ do_stop() } # Function that sends a SIGHUP to the daemon/service -#do_reload() { -# start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME -# return 0 -#} +do_reload() { + start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME + return 0 +} case "$1" in start) @@ -82,14 +82,12 @@ case "$1" in status) status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? ;; - #reload|force-reload) - #log_daemon_msg "Reloading $DESC" "$NAME" - #do_reload - #log_end_msg $? - #;; - restart|force-reload) - # If the "reload" option is implemented then remove the - # 'force-reload' alias + reload|force-reload) + log_daemon_msg "Reloading $DESC" "$NAME" + do_reload + log_end_msg $? + ;; + restart) log_daemon_msg "Restarting $DESC" "$NAME" do_stop case "$?" in From e768e33ddd862bf988d09b7965867784b2db8596 Mon Sep 17 00:00:00 2001 From: Cameron Norman Date: Sat, 25 Oct 2014 18:42:35 -0700 Subject: [PATCH 4/4] Add Upstart job to debian packaging --- debian/i2pd.upstart | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 debian/i2pd.upstart diff --git a/debian/i2pd.upstart b/debian/i2pd.upstart new file mode 100644 index 00000000..0527935d --- /dev/null +++ b/debian/i2pd.upstart @@ -0,0 +1,10 @@ +description "i2p client daemon" + +start on runlevel [2345] +stop on runlevel [016] or unmounting-filesystem + +# these can be overridden in /etc/init/i2pd.override +env I2P_HOST="1.2.3.4" +env I2P_PORT="4567" + +exec /usr/sbin/i2pd --daemon=0 --log=1 --host=$I2P_HOST --port=$I2P_PORT