#! /bin/sh # -*- coding: utf-8 -*- # Debian init.d script for D-BUS # Copyright © 2003 Colin Walters # Copyright 2008 OE Team set -e DAEMON=/usr/bin/dbus-daemon NAME=dbus DAEMONUSER=messagebus RUNDIR=/var/run/dbus PIDFILE=/var/run/messagebus.pid UUIDDIR=/var/lib/dbus DESC="system message bus" EVENTDIR=/etc/dbus-1/event.d test -x $DAEMON || exit 0 # Source defaults file; edit that file to configure this script. ENABLED=1 PARAMS="" if [ -e /etc/default/dbus ]; then . /etc/default/dbus fi test "$ENABLED" != "0" || exit 0 start_it_up() { if [ ! -d $RUNDIR ]; then mkdir -p $RUNDIR chown $DAEMONUSER $RUNDIR chgrp $DAEMONUSER $RUNDIR fi if [ -e $PIDFILE ]; then PIDDIR=/proc/$(cat $PIDFILE) if [ -d ${PIDDIR} -a "$(readlink -f ${PIDDIR}/exe)" = "${DAEMON}" ]; then echo "$DESC already started; not starting." else echo "Removing stale PID file $PIDFILE." rm -f $PIDFILE fi fi if [ ! -d $UUIDDIR ]; then mkdir -p $UUIDDIR chown $DAEMONUSER $UUIDDIR chgrp $DAEMONUSER $UUIDDIR fi dbus-uuidgen --ensure echo -n "Starting $DESC: " start-stop-daemon --start --pidfile $PIDFILE \ --user $DAEMONUSER --exec $DAEMON -- --system $PARAMS echo "$NAME." if [ -d $EVENTDIR ]; then run-parts --arg=start $EVENTDIR fi } shut_it_down() { if [ -d $EVENTDIR ]; then # TODO: --reverse when busybox supports it run-parts --arg=stop $EVENTDIR fi echo -n "Stopping $DESC: " start-stop-daemon --stop --oknodo --pidfile $PIDFILE \ --user $DAEMONUSER # We no longer include these arguments so that start-stop-daemon # can do its job even given that we may have been upgraded. # We rely on the pidfile being sanely managed # --exec $DAEMON -- --system $PARAMS echo "$NAME." rm -f $PIDFILE } reload_it() { echo -n "Reloading $DESC config: " dbus-send --print-reply --system --type=method_call \ --dest=org.freedesktop.DBus \ / org.freedesktop.DBus.ReloadConfig > /dev/null # hopefully this is enough time for dbus to reload it's config file. echo "done." } case "$1" in start) start_it_up ;; stop) shut_it_down ;; reload|force-reload) reload_it ;; restart) shut_it_down sleep 1 start_it_up ;; *) echo "Usage: /etc/init.d/$NAME {start|stop|restart|reload|force-reload}" >&2 exit 1 ;; esac exit 0