Blame 0128-move-start-from-udev-to-initqueue-online.patch

Harald Hoyer 53404a
From 223547feab5eb85ee96e0e097b6172705803e260 Mon Sep 17 00:00:00 2001
Harald Hoyer 53404a
From: Brendan Germain <brendan.germain@nasdaqomx.com>
Harald Hoyer 53404a
Date: Wed, 25 May 2016 13:25:09 -0400
Harald Hoyer 53404a
Subject: [PATCH] move start from udev to initqueue/online
Harald Hoyer 53404a
Harald Hoyer 53404a
---
Harald Hoyer 53404a
 modules.d/98syslog/module-setup.sh      |  3 +--
Harald Hoyer 53404a
 modules.d/98syslog/parse-syslog-opts.sh | 22 +++++++++++++++++++++-
Harald Hoyer 53404a
 modules.d/98syslog/rsyslogd-start.sh    | 21 +++++++++++++++------
Harald Hoyer 53404a
 modules.d/98syslog/syslog-genrules.sh   | 30 ------------------------------
Harald Hoyer 53404a
 4 files changed, 37 insertions(+), 39 deletions(-)
Harald Hoyer 53404a
 delete mode 100755 modules.d/98syslog/syslog-genrules.sh
Harald Hoyer 53404a
Harald Hoyer 53404a
diff --git a/modules.d/98syslog/module-setup.sh b/modules.d/98syslog/module-setup.sh
Harald Hoyer 53404a
index 4458229..e18aecb 100755
Harald Hoyer 53404a
--- a/modules.d/98syslog/module-setup.sh
Harald Hoyer 53404a
+++ b/modules.d/98syslog/module-setup.sh
Harald Hoyer 53404a
@@ -29,9 +29,8 @@ install() {
Harald Hoyer 53404a
     if [ -n "$_installs" ]; then
Harald Hoyer 53404a
         inst_multiple cat $_installs
Harald Hoyer 53404a
         inst_hook cmdline  90 "$moddir/parse-syslog-opts.sh"
Harald Hoyer 53404a
-        inst_hook pre-udev 61 "$moddir/syslog-genrules.sh"
Harald Hoyer 53404a
         inst_hook cleanup 99 "$moddir/syslog-cleanup.sh"
Harald Hoyer 53404a
-        inst_simple "$moddir/rsyslogd-start.sh" /sbin/rsyslogd-start
Harald Hoyer 53404a
+        inst_hook initqueue/online 70 "$moddir/rsyslogd-start.sh"
Harald Hoyer 53404a
         inst_simple "$moddir/rsyslogd-stop.sh" /sbin/rsyslogd-stop
Harald Hoyer 53404a
         mkdir -m 0755 -p ${initdir}/etc/templates
Harald Hoyer 53404a
         inst_simple "${moddir}/rsyslog.conf" /etc/templates/rsyslog.conf
Harald Hoyer 53404a
diff --git a/modules.d/98syslog/parse-syslog-opts.sh b/modules.d/98syslog/parse-syslog-opts.sh
Harald Hoyer 53404a
index 3943258..50ec275 100755
Harald Hoyer 53404a
--- a/modules.d/98syslog/parse-syslog-opts.sh
Harald Hoyer 53404a
+++ b/modules.d/98syslog/parse-syslog-opts.sh
Harald Hoyer 53404a
@@ -9,10 +9,30 @@
Harald Hoyer 53404a
 #                   Don't auto detect syslog but set it
Harald Hoyer 53404a
 type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
Harald Hoyer 53404a
 
Harald Hoyer 53404a
+detect_syslog() {
Harald Hoyer 53404a
+    syslogtype=""
Harald Hoyer 53404a
+    if [ -e /sbin/rsyslogd ]; then
Harald Hoyer 53404a
+        syslogtype="rsyslogd"
Harald Hoyer 53404a
+    elif [ -e /sbin/syslogd ]; then
Harald Hoyer 53404a
+        syslogtype="syslogd"
Harald Hoyer 53404a
+    elif [ /sbin/syslog-ng ]; then
Harald Hoyer 53404a
+        syslogtype="syslog-ng"
Harald Hoyer 53404a
+    else
Harald Hoyer 53404a
+        warn "Could not find any syslog binary although the syslogmodule is selected to be installed. Please check."
Harald Hoyer 53404a
+    fi
Harald Hoyer 53404a
+    echo "$syslogtype"
Harald Hoyer 53404a
+    [ -n "$syslogtype" ]
Harald Hoyer 53404a
+}
Harald Hoyer 53404a
+
Harald Hoyer 53404a
 syslogserver=$(getarg syslog.server -d syslog)
Harald Hoyer 53404a
 syslogfilters=$(getargs syslog.filter -d filter)
Harald Hoyer 53404a
 syslogtype=$(getarg syslog.type -d syslogtype)
Harald Hoyer 53404a
 
Harald Hoyer 53404a
 [ -n "$syslogserver" ] && echo $syslogserver > /tmp/syslog.server
Harald Hoyer 53404a
 [ -n "$syslogfilters" ] && echo "$syslogfilters" > /tmp/syslog.filters
Harald Hoyer 53404a
-[ -n "$syslogtype" ] && echo "$syslogtype" > /tmp/syslog.type
Harald Hoyer 53404a
+if [ -n "$syslogtype" ]; then
Harald Hoyer 53404a
+    echo "$syslogtype" > /tmp/syslog.type
Harald Hoyer 53404a
+else
Harald Hoyer 53404a
+    syslogtype=$(detect_syslog)
Harald Hoyer 53404a
+    echo $syslogtype > /tmp/syslog.type
Harald Hoyer 53404a
+fi
Harald Hoyer 53404a
diff --git a/modules.d/98syslog/rsyslogd-start.sh b/modules.d/98syslog/rsyslogd-start.sh
Harald Hoyer 53404a
index c08e667..25dfb16 100755
Harald Hoyer 53404a
--- a/modules.d/98syslog/rsyslogd-start.sh
Harald Hoyer 53404a
+++ b/modules.d/98syslog/rsyslogd-start.sh
Harald Hoyer 53404a
@@ -1,9 +1,15 @@
Harald Hoyer 53404a
 #!/bin/sh
Harald Hoyer 53404a
 
Harald Hoyer 53404a
-# Triggered by udev and starts rsyslogd with bootparameters
Harald Hoyer 53404a
+# Triggered by initqueue/online and starts rsyslogd with bootparameters
Harald Hoyer 53404a
 
Harald Hoyer 53404a
 type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
Harald Hoyer 53404a
 
Harald Hoyer 53404a
+# prevent starting again if already running
Harald Hoyer 53404a
+if [ -f /var/run/syslogd.pid ]; then
Harald Hoyer 53404a
+    read pid < /var/run/syslogd.pid
Harald Hoyer 53404a
+    kill -0 $pid && exit 0
Harald Hoyer 53404a
+fi
Harald Hoyer 53404a
+
Harald Hoyer 53404a
 rsyslog_config() {
Harald Hoyer 53404a
     local server=$1
Harald Hoyer 53404a
     shift
Harald Hoyer 53404a
@@ -17,17 +23,20 @@ rsyslog_config() {
Harald Hoyer 53404a
     for filter in $filters; do
Harald Hoyer 53404a
         echo "${filter} @${server}"
Harald Hoyer 53404a
     done
Harald Hoyer 53404a
-#       echo "*.* /tmp/syslog"
Harald Hoyer 53404a
+    #echo "*.* /tmp/syslog"
Harald Hoyer 53404a
 }
Harald Hoyer 53404a
 
Harald Hoyer 53404a
+read type < /tmp/syslog.type
Harald Hoyer 53404a
 read server < /tmp/syslog.server
Harald Hoyer 53404a
 read filters < /tmp/syslog.filters
Harald Hoyer 53404a
 [ -z "$filters" ] && filters="kern.*"
Harald Hoyer 53404a
 read conf < /tmp/syslog.conf
Harald Hoyer 53404a
 [ -z "$conf" ] && conf="/etc/rsyslog.conf" && echo "$conf" > /tmp/syslog.conf
Harald Hoyer 53404a
 
Harald Hoyer 53404a
-template=/etc/templates/rsyslog.conf
Harald Hoyer 53404a
-if [ -n "$server" ]; then
Harald Hoyer 53404a
-    rsyslog_config "$server" "$template" "$filters" > $conf
Harald Hoyer 53404a
-    rsyslogd -c3
Harald Hoyer 53404a
+if [ $type == "rsyslogd" ]; then
Harald Hoyer 53404a
+    template=/etc/templates/rsyslog.conf
Harald Hoyer 53404a
+    if [ -n "$server" ]; then
Harald Hoyer 53404a
+        rsyslog_config "$server" "$template" "$filters" > $conf
Harald Hoyer 53404a
+        rsyslogd -c3
Harald Hoyer 53404a
+    fi
Harald Hoyer 53404a
 fi
Harald Hoyer 53404a
diff --git a/modules.d/98syslog/syslog-genrules.sh b/modules.d/98syslog/syslog-genrules.sh
Harald Hoyer 53404a
deleted file mode 100755
Harald Hoyer 53404a
index 072bdea..0000000
Harald Hoyer 53404a
--- a/modules.d/98syslog/syslog-genrules.sh
Harald Hoyer 53404a
+++ /dev/null
Harald Hoyer 53404a
@@ -1,30 +0,0 @@
Harald Hoyer 53404a
-#!/bin/sh
Harald Hoyer 53404a
-
Harald Hoyer 53404a
-# Creates the syslog udev rules to be triggered when interface becomes online.
Harald Hoyer 53404a
-type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
Harald Hoyer 53404a
-
Harald Hoyer 53404a
-detect_syslog() {
Harald Hoyer 53404a
-    syslogtype=""
Harald Hoyer 53404a
-    if [ -e /sbin/rsyslogd ]; then
Harald Hoyer 53404a
-        syslogtype="rsyslogd"
Harald Hoyer 53404a
-    elif [ -e /sbin/syslogd ]; then
Harald Hoyer 53404a
-        syslogtype="syslogd"
Harald Hoyer 53404a
-    elif [ /sbin/syslog-ng ]; then
Harald Hoyer 53404a
-        syslogtype="syslog-ng"
Harald Hoyer 53404a
-    else
Harald Hoyer 53404a
-        warn "Could not find any syslog binary although the syslogmodule is selected to be installed. Please check."
Harald Hoyer 53404a
-    fi
Harald Hoyer 53404a
-    echo "$syslogtype"
Harald Hoyer 53404a
-    [ -n "$syslogtype" ]
Harald Hoyer 53404a
-}
Harald Hoyer 53404a
-
Harald Hoyer 53404a
-read syslogtype < /tmp/syslog.type
Harald Hoyer 53404a
-if [ -z "$syslogtype" ]; then
Harald Hoyer 53404a
-    syslogtype=$(detect_syslog)
Harald Hoyer 53404a
-    echo $syslogtype > /tmp/syslog.type
Harald Hoyer 53404a
-fi
Harald Hoyer 53404a
-if [ -e "/sbin/${syslogtype}-start" ]; then
Harald Hoyer 53404a
-    printf 'ACTION=="online", SUBSYSTEM=="net", RUN+="/sbin/initqueue --onetime /sbin/'${syslogtype}'-start $env{INTERFACE}"\n' > /etc/udev/rules.d/70-syslog.rules
Harald Hoyer 53404a
-else
Harald Hoyer 53404a
-    warn "syslog-genrules: Could not find binary to start syslog of type \"$syslogtype\". Syslog will not be started."
Harald Hoyer 53404a
-fi