summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Hughes <richard@hughsie.com>2010-07-14 08:50:16 +0100
committerRichard Hughes <richard@hughsie.com>2010-07-14 08:50:16 +0100
commit18a43206d2f3c1664d853566b2a264dc756ada7e (patch)
tree5848a824d8c247685b24d42136ac6a1496c7afbb
parent476dd36af55f6835a719bf275ee3b772b7fa652c (diff)
Make the haldaemon initscript LSB compliant
This is something I had to do in RHEL6, and so it made sense to share with upstream, even though another HAL release might not be likely.
-rwxr-xr-xhald/haldaemon.in110
1 files changed, 69 insertions, 41 deletions
diff --git a/hald/haldaemon.in b/hald/haldaemon.in
index 33ee31a5..34114c61 100755
--- a/hald/haldaemon.in
+++ b/hald/haldaemon.in
@@ -11,9 +11,6 @@
# pidfile: @HALD_PID_FILE@
#
-# Sanity checks.
-[ -x @sbindir@/hald ] || exit 1
-
# Source function library.
. @sysconfdir@/rc.d/init.d/functions
@@ -23,52 +20,83 @@ servicename=haldaemon
RETVAL=0
+#
+# See how we were called.
+#
+
+check() {
+ # Check that we're a privileged user
+ [ `id -u` = 0 ] || exit 4
+
+ # Check if hald is executable
+ test -x @sbindir@/hald || exit 5
+}
+
start() {
- echo -n $"Starting HAL daemon: "
- daemon --check $servicename $processname
- RETVAL=$?
- echo
- [ $RETVAL -eq 0 ] && touch @localstatedir@/lock/subsys/$servicename
+
+ check
+
+ # Check if it is already running
+ if [ ! -f @localstatedir@/lock/subsys/$servicename ]; then
+ echo -n $"Starting HAL daemon: "
+ daemon --check $servicename $processname
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && touch @localstatedir@/lock/subsys/$servicename
+ echo
+ fi
+ return $RETVAL
}
stop() {
- echo -n $"Stopping HAL daemon: "
- killproc $servicename -TERM
- RETVAL=$?
- echo
- if [ $RETVAL -eq 0 ]; then
- rm -f @localstatedir@/lock/subsys/$servicename
- rm -f @HALD_PID_FILE@
- fi
+ check
+
+ echo -n $"Stopping HAL daemon: "
+ killproc $servicename -TERM
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && rm -f @localstatedir@/lock/subsys/$servicename
+ echo
+ if [ $RETVAL -eq 0 ]; then
+ rm -f @localstatedir@/lock/subsys/$servicename
+ rm -f @HALD_PID_FILE@
+ fi
+ return $RETVAL
}
-# See how we were called.
case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- status)
- status $processname
- RETVAL=$?
- ;;
- restart)
- stop
+start)
+ start
+ ;;
+stop)
+ stop
+ ;;
+reload)
+ echo "$0: Unimplemented feature (hald does this automatically)."
+ RETVAL=3
+ ;;
+force-reload)
+ echo "$0: Unimplemented feature."
+ RETVAL=3
+ ;;
+status)
+ status -p @HALD_PID_FILE@ -l haldaemon $processname
+ RETVAL=$?
+ ;;
+restart)
+ stop
sleep 3
- start
- ;;
- condrestart)
- if [ -f @localstatedir@/lock/subsys/$servicename ]; then
- stop
- sleep 3
- start
- fi
- ;;
- *)
- echo $"Usage: $0 {start|stop|status|restart|condrestart}"
- ;;
+ start
+ ;;
+try-restart|condrestart)
+ if [ -f @localstatedir@/lock/subsys/$servicename ]; then
+ stop
+ sleep 3
+ start
+ fi
+ ;;
+*)
+ echo $"Usage: $0 {start|stop|status|restart|condrestart}"
+ RETVAL=2
esac
+
exit $RETVAL