[oe] [meta-oe][PATCH] rsyslog: add status command and minor fixes for initscript

jackie.huang at windriver.com jackie.huang at windriver.com
Wed Apr 16 09:31:16 UTC 2014


From: Jackie Huang <jackie.huang at windriver.com>

- add status command
- remove the unsupported option:
  rsyslogd: error: option -c is no longer supported - ignored
- add --oknodo for do_start

Signed-off-by: Jackie Huang <jackie.huang at windriver.com>
---
 .../recipes-extended/rsyslog/rsyslog/initscript    |   35 ++++++++++++++++++--
 1 file changed, 32 insertions(+), 3 deletions(-)

diff --git a/meta-oe/recipes-extended/rsyslog/rsyslog/initscript b/meta-oe/recipes-extended/rsyslog/rsyslog/initscript
index 8dee684..4121434 100644
--- a/meta-oe/recipes-extended/rsyslog/rsyslog/initscript
+++ b/meta-oe/recipes-extended/rsyslog/rsyslog/initscript
@@ -9,7 +9,8 @@ PATH=/sbin:/usr/sbin:/bin:/usr/bin
 NAME=rsyslog
 RSYSLOGD=rsyslogd
 RSYSLOGD_BIN=/usr/sbin/rsyslogd
-RSYSLOGD_OPTIONS="-c5"
+# with rsyslog 7, -c is no longer supported
+RSYSLOGD_OPTIONS=""
 RSYSLOGD_PIDFILE=/var/run/rsyslogd.pid
 SCRIPTNAME=/etc/init.d/$NAME
 # Exit if the package is not installed
@@ -27,7 +28,10 @@ do_start()
         # Return
         #   0 if daemon has been started
         #   1 if daemon could not be started
-        start-stop-daemon -S --quiet --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_ARGS || return 1
+        #   if daemon had already been started, start-stop-daemon will return 1
+        #   so add -o/--oknodo(if nothing is done, exit 0)
+        start-stop-daemon -S --quiet --pidfile $PIDFILE --exec $DAEMON \
+                             --oknodo -- $DAEMON_ARGS || return 1
 }
 #
 # Function that stops the daemon/service
@@ -56,6 +60,20 @@ do_reload() {
         start-stop-daemon -K --signal HUP --quiet --pidfile $PIDFILE --name $NAME
         return 0
 }
+
+do_status() {
+        NAME=$1
+        PIDFILE=$2
+        # -t: test only but not stop
+        start-stop-daemon -K -t --quiet --pidfile $PIDFILE --name $NAME
+        # exit with status 0 if process is found
+        if [ "$?" = "0" ]; then
+                return 0
+        else
+                return 1
+        fi
+}
+
 case "$1" in
   start)
         echo -n "starting $RSYSLOGD ... "
@@ -82,8 +100,19 @@ case "$1" in
         $0 stop
         $0 start
         ;;
+  status)
+        echo -n "status $RSYSLOGD ... "
+        do_status "$RSYSLOGD" "$RSYSLOGD_PIDFILE"
+        if [ "$?" = "0" ]; then
+                echo "running"
+                exit 0        
+        else
+                echo "stopped"
+                exit 1        
+        fi
+        ;;
   *)
-        echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
+        echo "Usage: $SCRIPTNAME {start|stop|status|restart|reload|force-reload}" >&2
         exit 3
         ;;
 esac
-- 
1.7.9.5




More information about the Openembedded-devel mailing list