| #!/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" -a -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" -a -f "$RFCOMM_CONFIG" ] ; then |
| $RFCOMM_EXEC -f $RFCOMM_CONFIG bind all || true |
| echo -n " $RFCOMM_NAME" |
| fi |
| if $DUND_ENABLE && [ -x "$DUND_EXEC" -a -n "$DUND_OPTIONS" ] ; then |
| $DUND_EXEC $DUND_OPTIONS |
| echo -n " $DUND_NAME" |
| fi |
| if $PAND_ENABLE && [ -x "$PAND_EXEC" -a -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 |