| #! /bin/sh |
| ### BEGIN INIT INFO |
| # Provides: dbus |
| # Required-Start: $remote_fs $syslog |
| # Required-Stop: $remote_fs $syslog |
| # Default-Start: 2 3 4 5 |
| # Default-Stop: 1 |
| # Short-Description: D-Bus systemwide message bus |
| # Description: D-Bus is a simple interprocess messaging system, used |
| # for sending messages between applications. |
| ### END INIT INFO |
| # |
| # -*- coding: utf-8 -*- |
| # Debian init.d script for D-BUS |
| # Copyright © 2003 Colin Walters <walters@debian.org> |
| |
| # set -e |
| |
| # Source function library. |
| . /etc/init.d/functions |
| |
| DAEMON=@bindir@/dbus-daemon |
| NAME=dbus |
| DAEMONUSER=messagebus # must match /usr/share/dbus-1/system.conf |
| PIDFILE=/var/run/dbus/pid # must match /usr/share/dbus-1/system.conf |
| 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() |
| { |
| mkdir -p "`dirname $PIDFILE`" |
| 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 -o --start --quiet --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 -o --stop --quiet --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 |
| ;; |
| status) |
| status $DAEMON |
| exit $? |
| ;; |
| reload|force-reload) |
| reload_it |
| ;; |
| restart) |
| shut_it_down |
| sleep 1 |
| start_it_up |
| ;; |
| *) |
| echo "Usage: /etc/init.d/$NAME {start|stop|status|restart|reload|force-reload}" >&2 |
| exit 1 |
| ;; |
| esac |
| |
| exit 0 |