diff options
-rw-r--r--[-rwxr-xr-x] | recipes-extended/sysklogd/files/sysklogd | 47 |
1 files changed, 29 insertions, 18 deletions
diff --git a/recipes-extended/sysklogd/files/sysklogd b/recipes-extended/sysklogd/files/sysklogd index 8c6eeb5..e49c2da 100755..100644 --- a/recipes-extended/sysklogd/files/sysklogd +++ b/recipes-extended/sysklogd/files/sysklogd | |||
@@ -12,12 +12,13 @@ | |||
12 | # Short-Description: System logger | 12 | # Short-Description: System logger |
13 | ### END INIT INFO | 13 | ### END INIT INFO |
14 | 14 | ||
15 | # Source function library. | ||
16 | . /etc/init.d/functions | ||
17 | |||
15 | PATH=/bin:/usr/bin:/sbin:/usr/sbin | 18 | PATH=/bin:/usr/bin:/sbin:/usr/sbin |
16 | 19 | ||
17 | pidfile_syslogd=/var/run/syslogd.pid | 20 | pidfile_syslogd=/var/run/syslogd.pid |
18 | pidfile_klogd=/var/run/klogd.pid | 21 | binpath_syslogd=/usr/sbin/syslogd |
19 | binpath_syslogd=/sbin/syslogd | ||
20 | binpath_klogd=/sbin/klogd | ||
21 | 22 | ||
22 | test -x $binpath || exit 0 | 23 | test -x $binpath || exit 0 |
23 | 24 | ||
@@ -87,6 +88,22 @@ running() | |||
87 | return 0 | 88 | return 0 |
88 | } | 89 | } |
89 | 90 | ||
91 | waitpid () | ||
92 | { | ||
93 | pid=$1 | ||
94 | # Give pid a chance to exit before we restart with a 5s timeout in 1s intervals | ||
95 | if [ -z "$pid" ]; then | ||
96 | return | ||
97 | fi | ||
98 | timeout=5; | ||
99 | while [ $timeout -gt 0 ] | ||
100 | do | ||
101 | timeout=$(( $timeout-1 )) | ||
102 | kill -0 $pid 2> /dev/null || break | ||
103 | sleep 1 | ||
104 | done | ||
105 | } | ||
106 | |||
90 | case "$1" in | 107 | case "$1" in |
91 | start) | 108 | start) |
92 | log_begin_msg "Starting system log daemon..." | 109 | log_begin_msg "Starting system log daemon..." |
@@ -94,36 +111,24 @@ case "$1" in | |||
94 | start-stop-daemon --start --quiet --pidfile $pidfile_syslogd --name syslogd --startas $binpath_syslogd -- $SYSLOGD | 111 | start-stop-daemon --start --quiet --pidfile $pidfile_syslogd --name syslogd --startas $binpath_syslogd -- $SYSLOGD |
95 | test ! -x /sbin/restorecon || /sbin/restorecon -RF /dev/log /var/log/ | 112 | test ! -x /sbin/restorecon || /sbin/restorecon -RF /dev/log /var/log/ |
96 | log_end_msg $? | 113 | log_end_msg $? |
97 | log_begin_msg "Starting kernel log daemon..." | ||
98 | start-stop-daemon --start --quiet --pidfile $pidfile_klogd --name klogd --startas $binpath_klogd -- $KLOGD | ||
99 | log_end_msg $? | ||
100 | ;; | 114 | ;; |
101 | stop) | 115 | stop) |
102 | log_begin_msg "Stopping system log daemon..." | 116 | log_begin_msg "Stopping system log daemon..." |
103 | start-stop-daemon --stop --quiet --pidfile $pidfile_syslogd --name syslogd | 117 | start-stop-daemon --stop --quiet --pidfile $pidfile_syslogd --name syslogd |
104 | log_end_msg $? | 118 | log_end_msg $? |
105 | log_begin_msg "Stopping kernel log daemon..." | ||
106 | start-stop-daemon --stop --quiet --retry 3 --exec $binpath_klogd --pidfile $pidfile_klogd | ||
107 | log_end_msg $? | ||
108 | ;; | 119 | ;; |
109 | reload|force-reload) | 120 | reload|force-reload) |
110 | log_begin_msg "Reloading system log daemon..." | 121 | log_begin_msg "Reloading system log daemon..." |
111 | start-stop-daemon --stop --quiet --signal 1 --pidfile $pidfile_syslogd --name syslogd | 122 | start-stop-daemon --stop --quiet --signal 1 --pidfile $pidfile_syslogd --name syslogd |
112 | log_end_msg $? | 123 | log_end_msg $? |
113 | log_begin_msg "Reloading kernel log daemon..." | ||
114 | start-stop-daemon --stop --quiet --retry 3 --exec $binpath_klogd --pidfile $pidfile_klogd | ||
115 | start-stop-daemon --start --quiet --pidfile $pidfile_klogd --name klogd --startas $binpath_klogd -- $KLOGD | ||
116 | log_end_msg $? | ||
117 | ;; | 124 | ;; |
118 | restart) | 125 | restart) |
119 | log_begin_msg "Restarting system log daemon..." | 126 | log_begin_msg "Restarting system log daemon..." |
127 | pid=`cat $pidfile_syslogd 2> /dev/null` | ||
120 | start-stop-daemon --stop --retry 5 --quiet --pidfile $pidfile_syslogd --name syslogd | 128 | start-stop-daemon --stop --retry 5 --quiet --pidfile $pidfile_syslogd --name syslogd |
129 | waitpid $pid | ||
121 | start-stop-daemon --start --quiet --pidfile $pidfile_syslogd --name syslogd --startas $binpath_syslogd -- $SYSLOGD | 130 | start-stop-daemon --start --quiet --pidfile $pidfile_syslogd --name syslogd --startas $binpath_syslogd -- $SYSLOGD |
122 | log_end_msg $? | 131 | log_end_msg $? |
123 | log_begin_msg "Reloading kernel log daemon..." | ||
124 | start-stop-daemon --stop --quiet --retry 3 --exec $binpath_klogd --pidfile $pidfile_klogd | ||
125 | start-stop-daemon --start --quiet --pidfile $pidfile_klogd --name klogd --startas $binpath_klogd -- $KLOGD | ||
126 | log_end_msg $? | ||
127 | ;; | 132 | ;; |
128 | reload-or-restart) | 133 | reload-or-restart) |
129 | if running | 134 | if running |
@@ -133,8 +138,14 @@ case "$1" in | |||
133 | $0 start | 138 | $0 start |
134 | fi | 139 | fi |
135 | ;; | 140 | ;; |
141 | status) | ||
142 | status syslogd | ||
143 | RETVAL=$? | ||
144 | [ $RETVAL -eq 0 ] && exit $rval | ||
145 | exit $RETVAL | ||
146 | ;; | ||
136 | *) | 147 | *) |
137 | log_success_msg "Usage: /etc/init.d/sysklogd {start|stop|reload|restart|force-reload|reload-or-restart}" | 148 | log_success_msg "Usage: /etc/init.d/sysklogd {start|stop|reload|restart|force-reload|reload-or-restart|status}" |
138 | exit 1 | 149 | exit 1 |
139 | esac | 150 | esac |
140 | 151 | ||