From: Eric Wong <e@80x24.org>
Date: Tue, 15 Dec 2020 11:47:16 +0000 (+0000)
Subject: daemon: support --daemonize without Net::Server::Daemonize
X-Git-Tag: v1.6.1~11
X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=1cbb6243533fc2d4b34997d2500a180cd4c48999;p=public-inbox.git

daemon: support --daemonize without Net::Server::Daemonize

We don't actually need Net::Server::Daemonize to support
the --daemonize flag, since the daemonize() sub provided
by N::S::D doesn't exactly do the things we want.

(cherry picked from commit ab11caeb8ae114087636748df4c956d0e625b237)
---

diff --git a/lib/PublicInbox/Daemon.pm b/lib/PublicInbox/Daemon.pm
index b929ec2a..5fdcba14 100644
--- a/lib/PublicInbox/Daemon.pm
+++ b/lib/PublicInbox/Daemon.pm
@@ -212,16 +212,12 @@ sub daemonize () {
 
 		chdir '/' or die "chdir failed: $!";
 	}
-
-	return unless (defined $pid_file || defined $group || defined $user
-			|| $daemonize);
-
-	eval { require Net::Server::Daemonize };
-	if ($@) {
-		die
-"Net::Server required for --pid-file, --group, --user, and --daemonize\n$@\n";
+	if (defined($pid_file) || defined($group) || defined($user)) {
+		eval { require Net::Server::Daemonize; 1 } // die <<EOF;
+Net::Server required for --pid-file, --group, --user
+$@
+EOF
 	}
-
 	Net::Server::Daemonize::check_pid_file($pid_file) if defined $pid_file;
 	$uid = Net::Server::Daemonize::get_uid($user) if defined $user;
 	if (defined $group) {