87 lines
1.8 KiB
Bash
87 lines
1.8 KiB
Bash
#! /bin/sh
|
|
# -*- coding: utf-8 -*-
|
|
# Debian init.d script for D-BUS
|
|
# Copyright © 2003 Colin Walters <walters@debian.org>
|
|
|
|
set -e
|
|
|
|
DAEMON=/usr/bin/dbus-daemon-1
|
|
NAME=dbus-1
|
|
DAEMONUSER=messagebus
|
|
PIDDIR=/var/run/dbus
|
|
PIDFILE=$PIDDIR/pid
|
|
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-1 ]; then
|
|
. /etc/default/dbus-1
|
|
fi
|
|
|
|
test "$ENABLED" != "0" || exit 0
|
|
|
|
start_it_up()
|
|
{
|
|
if [ ! -d $PIDDIR ]; then
|
|
mkdir -p $PIDDIR
|
|
chown $DAEMONUSER $PIDDIR
|
|
chgrp $DAEMONUSER $PIDDIR
|
|
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
|
|
echo -n "Starting $DESC: "
|
|
start-stop-daemon --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
|
|
run-parts --reverse --arg=stop $EVENTDIR
|
|
fi
|
|
echo -n "Stopping $DESC: "
|
|
start-stop-daemon --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
|
|
}
|
|
|
|
case "$1" in
|
|
start)
|
|
start_it_up
|
|
;;
|
|
stop)
|
|
shut_it_down
|
|
;;
|
|
restart|force-reload)
|
|
shut_it_down
|
|
sleep 1
|
|
start_it_up
|
|
;;
|
|
*)
|
|
echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload}" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
exit 0
|