chiark / gitweb /
prefork-interp: Logging directability
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 15 Aug 2022 16:37:43 +0000 (17:37 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 21 Aug 2022 20:21:10 +0000 (21:21 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
perl/Prefork.pm

index d79eb5bf522514ccd2ceaf6ead5c51efdc74181d..b07a2e7232f894258f61003198283004dd4c78ea 100644 (file)
@@ -16,10 +16,15 @@ our $env_name = 'PREFORK_INTERP';
 
 our @call_fds;
 our $socket_path;
+our $fail_log = 0;
 
 sub fail_log ($) {
   my ($m) = @_;
-  syslog(LOG_ERR, "$0: prefork [$$]: error: $m");
+  if ($fail_log) {
+    syslog(LOG_ERR, "$0: prefork [$$]: error: $m");
+  } else {
+    croak "$0: prefork: initialisation error: $m";
+  }
   _exit 127;
 }
 
@@ -166,6 +171,7 @@ sub initialisation_complete {
   
   # --- server(pm) [2] ----
 
+  $fail_log = 1;
   setsid() > 0 or fail_log("setsid: $!");
   open STDIN, "<&NULL" or fail_log("dup null onto stdin: $!");
   open STDOUT, ">&NULL" or fail_log("dup null onto stdout: $!");