From 6f89e169c8605e716e9e7b665ad00bbb796de0a1 Mon Sep 17 00:00:00 2001 From: Darren 'Tadgy' Austin Date: Fri, 22 May 2026 12:10:14 +0100 Subject: [PATCH] Remove fifo before creating it. Remove fifo on SIGTERM. --- lumberjack | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lumberjack b/lumberjack index cf3f486..5cf11a5 100755 --- a/lumberjack +++ b/lumberjack @@ -297,6 +297,9 @@ sigterm_handler() { close_fd "$SITE" done disown -a + (( FLAGS[created-fifo] == 1 )) && { + rm -f "$INPUT" 2>/dev/null || syslog "warn" "failed to remove pipe/fifo: $INPUT" + } exit 0 } @@ -557,14 +560,13 @@ TEMPLATE="$2" # If input is to be a pipe/FIFO, create it if necessary. [[ -n "$INPUT" ]] && { - if [[ ! -e "$INPUT" ]]; then + [[ ! -e "$INPUT" ]] || [[ ! -p "$INPUT" ]] && { umask "$PIPE_UMASK" + rm -f "$INPUT" mkfifo "$INPUT" 2>/dev/null || die "failed to create pipe/FIFO: $INPUT" FLAGS[created-fifo]=1 [[ -n "$PIPE_OWNER" ]] && { chown "$PIPE_OWNER" "$INPUT" >/dev/null 2>&1 || die "failed to chown pipe/FIFO: $INPUT"; } - elif [[ ! -p "$INPUT" ]]; then - die "not a pipe/FIFO: $INPUT" - fi + } } # Apply user and setting.