mirror of
https://git.kernel.org/pub/scm/bluetooth/bluez.git
synced 2024-12-11 21:14:36 +08:00
104 lines
2.3 KiB
Bash
104 lines
2.3 KiB
Bash
#!/bin/sh
|
|
#
|
|
# Start/stop the Bluetooth daemons
|
|
#
|
|
|
|
set -e
|
|
|
|
PATH=/sbin:/bin:/usr/sbin:/usr/bin
|
|
NAME=bluetooth
|
|
DESC="Bluetooth subsystem"
|
|
|
|
HCID_NAME=hcid
|
|
SDPD_NAME=sdpd
|
|
HIDD_NAME=hidd
|
|
HID2HCI_NAME=hid2hci
|
|
RFCOMM_NAME=rfcomm
|
|
PAND_NAME=pand
|
|
DUND_NAME=dund
|
|
|
|
HCID_EXEC="`which $HCID_NAME || true`"
|
|
SDPD_EXEC="`which $SDPD_NAME || true`"
|
|
HIDD_EXEC="`which $HIDD_NAME || true`"
|
|
HID2HCI_EXEC="`which $HID2HCI_NAME || true`"
|
|
RFCOMM_EXEC="`which $RFCOMM_NAME || true`"
|
|
PAND_EXEC="`which $PAND_NAME || true`"
|
|
DUND_EXEC="`which $DUND_NAME || true`"
|
|
|
|
HCID_ENABLE=true
|
|
SDPD_ENABLE=true
|
|
HIDD_ENABLE=false
|
|
HID2HCI_ENABLE=false
|
|
RFCOMM_ENABLE=true
|
|
DUND_ENABLE=false
|
|
PAND_ENABLE=false
|
|
|
|
HCID_CONFIG="/etc/bluetooth/hcid.conf"
|
|
RFCOMM_CONFIG="/etc/bluetooth/rfcomm.conf"
|
|
|
|
HIDD_OPTIONS=""
|
|
DUND_OPTIONS=""
|
|
PAND_OPTIONS=""
|
|
|
|
[ -e /etc/default/bluetooth ] && . /etc/default/bluetooth
|
|
|
|
case "$1" in
|
|
start)
|
|
echo -n "Starting $DESC:"
|
|
if $HCID_ENABLE && [ -x "$HCID_EXEC" ] && [ -f "$HCID_CONFIG" ] ; then
|
|
$HCID_EXEC -f $HCID_CONFIG
|
|
echo -n " $HCID_NAME"
|
|
fi
|
|
if $SDPD_ENABLE && [ -x "$SDPD_EXEC" ] ; then
|
|
$SDPD_EXEC
|
|
echo -n " $SDPD_NAME"
|
|
fi
|
|
if $HIDD_ENABLE && [ -x "$HIDD_EXEC" ] ; then
|
|
$HIDD_EXEC $HIDD_OPTIONS --server || true
|
|
echo -n " $HIDD_NAME"
|
|
fi
|
|
if $HID2HCI_ENABLE && [ -x "$HID2HCI_EXEC" ] ; then
|
|
$HID2HCI_EXEC --tohci > /dev/null 2>&1 || true
|
|
echo -n " $HID2HCI_NAME"
|
|
fi
|
|
if $RFCOMM_ENABLE && [ -x "$RFCOMM_EXEC" ] && [ -f "$RFCOMM_CONFIG" ] ; then
|
|
$RFCOMM_EXEC -f $RFCOMM_CONFIG bind all || true
|
|
echo -n " $RFCOMM_NAME"
|
|
fi
|
|
if $DUND_ENABLE && [ -x "$DUND_EXEC" ] && [ -n "$DUND_OPTIONS" ] ; then
|
|
$DUND_EXEC $DUND_OPTIONS
|
|
echo -n " $DUND_NAME"
|
|
fi
|
|
if $PAND_ENABLE && [ -x "$PAND_EXEC" ] && [ -n "$PAND_OPTIONS" ] ; then
|
|
$PAND_EXEC $PAND_OPTIONS
|
|
echo -n " $PAND_NAME"
|
|
fi
|
|
echo "."
|
|
;;
|
|
stop)
|
|
echo -n "Stopping $DESC:"
|
|
killall $PAND_NAME > /dev/null 2>&1 || true
|
|
echo -n " $PAND_NAME"
|
|
killall $DUND_NAME > /dev/null 2>&1 || true
|
|
echo -n " $DUND_NAME"
|
|
if [ -x "$RFCOMM_EXEC" ] ; then
|
|
$RFCOMM_EXEC release all > /dev/null 2>&1 || true
|
|
echo -n " $RFCOMM_NAME"
|
|
fi
|
|
killall $HIDD_NAME > /dev/null 2>&1 || true
|
|
echo -n " $HIDD_NAME"
|
|
killall $SDPD_NAME > /dev/null 2>&1 || true
|
|
echo -n " $SDPD_NAME"
|
|
killall $HCID_NAME > /dev/null 2>&1 || true
|
|
echo -n " $HCID_NAME"
|
|
echo "."
|
|
;;
|
|
*)
|
|
N=/etc/init.d/$NAME
|
|
echo "Usage: $N {start|stop}" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
exit 0
|