From 0cbe3ee24cb4a2ffbcaf44f041b30813cac8ff94 Mon Sep 17 00:00:00 2001
From: Alex Wiens <alex.wiens@uni-paderborn.de>
Date: Mon, 17 Feb 2025 18:04:12 +0100
Subject: [PATCH] Prule.daemon: Add blocking of SIGPIPE

---
 prule/daemon/__main__.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/prule/daemon/__main__.py b/prule/daemon/__main__.py
index cdea2b8..98c6e83 100644
--- a/prule/daemon/__main__.py
+++ b/prule/daemon/__main__.py
@@ -659,7 +659,7 @@ class PruleThread(threading.Thread):
         if 'JOB_PROCESS_QUIET' not in config.config or config.config['JOB_PROCESS_QUIET'] == True:
             params += ["--quiet"]
         def preexec():
-            signal.pthread_sigmask(signal.SIG_UNBLOCK, [signal.SIGINT, signal.SIGTERM, signal.SIGUSR1])
+            signal.pthread_sigmask(signal.SIG_UNBLOCK, [signal.SIGINT, signal.SIGTERM, signal.SIGUSR1, signal.SIGPIPE])
         with self.stopCondition:
             if self.currentProcess == None:
                 self.currentProcess = subprocess.Popen(params, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=sys.stderr, preexec_fn = preexec)
@@ -981,7 +981,7 @@ class PruleThread(threading.Thread):
 if __name__ == "__main__":
 
     # block signals, so startup will not be interrupted
-    signal.pthread_sigmask(signal.SIG_BLOCK, [signal.SIGINT, signal.SIGTERM, signal.SIGUSR1])
+    signal.pthread_sigmask(signal.SIG_BLOCK, [signal.SIGINT, signal.SIGTERM, signal.SIGUSR1, signal.SIGPIPE])
 
     parser = argparse.ArgumentParser(
         prog='prule daemon',
-- 
GitLab