1#! /bin/sh 2### BEGIN INIT INFO 3# Provides: dbus 4# Required-Start: $remote_fs $syslog 5# Required-Stop: $remote_fs $syslog 6# Default-Start: 2 3 4 5 7# Default-Stop: 1 8# Short-Description: D-Bus systemwide message bus 9# Description: D-Bus is a simple interprocess messaging system, used 10# for sending messages between applications. 11### END INIT INFO 12# 13# -*- coding: utf-8 -*- 14# Debian init.d script for D-BUS 15# Copyright © 2003 Colin Walters <walters@debian.org> 16 17# set -e 18 19# Source function library. 20. /etc/init.d/functions 21 22DAEMON=@bindir@/dbus-daemon 23NAME=dbus 24DAEMONUSER=messagebus # must match /usr/share/dbus-1/system.conf 25PIDFILE=/var/run/dbus/pid # must match /usr/share/dbus-1/system.conf 26UUIDDIR=/var/lib/dbus 27DESC="system message bus" 28EVENTDIR=/etc/dbus-1/event.d 29 30test -x $DAEMON || exit 0 31 32# Source defaults file; edit that file to configure this script. 33ENABLED=1 34PARAMS="" 35if [ -e /etc/default/dbus ]; then 36 . /etc/default/dbus 37fi 38 39test "$ENABLED" != "0" || exit 0 40 41start_it_up() 42{ 43 mkdir -p "`dirname $PIDFILE`" 44 if [ -e $PIDFILE ]; then 45 PIDDIR=/proc/$(cat $PIDFILE) 46 if [ -d ${PIDDIR} -a "$(readlink -f ${PIDDIR}/exe)" = "${DAEMON}" ]; then 47 echo "$DESC already started; not starting." 48 else 49 echo "Removing stale PID file $PIDFILE." 50 rm -f $PIDFILE 51 fi 52 fi 53 54 if [ ! -d $UUIDDIR ]; then 55 mkdir -p $UUIDDIR 56 chown $DAEMONUSER $UUIDDIR 57 chgrp $DAEMONUSER $UUIDDIR 58 fi 59 60 dbus-uuidgen --ensure 61 62 echo -n "Starting $DESC: " 63 start-stop-daemon -o --start --quiet --pidfile $PIDFILE \ 64 --user $DAEMONUSER --exec $DAEMON -- --system $PARAMS 65 echo "$NAME." 66 if [ -d $EVENTDIR ]; then 67 run-parts --arg=start $EVENTDIR 68 fi 69} 70 71shut_it_down() 72{ 73 if [ -d $EVENTDIR ]; then 74 # TODO: --reverse when busybox supports it 75 run-parts --arg=stop $EVENTDIR 76 fi 77 echo -n "Stopping $DESC: " 78 start-stop-daemon -o --stop --quiet --pidfile $PIDFILE \ 79 --user $DAEMONUSER 80 # We no longer include these arguments so that start-stop-daemon 81 # can do its job even given that we may have been upgraded. 82 # We rely on the pidfile being sanely managed 83 # --exec $DAEMON -- --system $PARAMS 84 echo "$NAME." 85 rm -f $PIDFILE 86} 87 88reload_it() 89{ 90 echo -n "Reloading $DESC config: " 91 dbus-send --print-reply --system --type=method_call \ 92 --dest=org.freedesktop.DBus \ 93 / org.freedesktop.DBus.ReloadConfig > /dev/null 94 # hopefully this is enough time for dbus to reload it's config file. 95 echo "done." 96} 97 98case "$1" in 99 start) 100 start_it_up 101 ;; 102 stop) 103 shut_it_down 104 ;; 105 status) 106 status $DAEMON 107 exit $? 108 ;; 109 reload|force-reload) 110 reload_it 111 ;; 112 restart) 113 shut_it_down 114 sleep 1 115 start_it_up 116 ;; 117 *) 118 echo "Usage: /etc/init.d/$NAME {start|stop|status|restart|reload|force-reload}" >&2 119 exit 1 120 ;; 121esac 122 123exit 0 124