You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

135 lines
2.9 KiB
Bash

#! /bin/sh
### BEGIN INIT INFO
# Provides: bluetooth
# Required-Start: $local_fs $syslog $remote_fs dbus
# Required-Stop: $local_fs $syslog $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start bluetooth daemons
### END INIT INFO
#
# bluez Bluetooth subsystem starting and stopping
#
# originally from bluez's scripts/bluetooth.init
#
# Edd Dumbill <ejad@debian.org>
# LSB 3.0 compilance and enhancements by Filippo Giunchedi <filippo@debian.org>
#
# Updated for bluez 4.7 by Mario Limonciello <mario_limonciello@dell.com>
# Updated for bluez 5.5 by Nobuhiro Iwamatsu <iwamatsu@debian.org>
#
# Note: older daemons like dund pand hidd are now shipped inside the
# bluez-compat package
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DESC=bluetooth
DAEMON=/usr/sbin/bluetoothd
HCIATTACH=/usr/bin/hciattach
HID2HCI_ENABLED=1
HID2HCI_UNDO=1
SDPTOOL=/usr/bin/sdptool
# If you want to be ignore error of "org.freedesktop.hostname1",
# please enable NOPLUGIN_OPTION.
# NOPLUGIN_OPTION="--noplugin=hostname"
NOPLUGIN_OPTION=""
SSD_OPTIONS="--oknodo --quiet --exec $DAEMON -- $NOPLUGIN_OPTION"
test -f $DAEMON || exit 0
# FIXME: any of the sourced files may fail if/with syntax errors
test -f /etc/default/bluetooth && . /etc/default/bluetooth
test -f /etc/default/rcS && . /etc/default/rcS
. /lib/lsb/init-functions
set -e
# FIXME: this function is possibly a no-op
run_sdptool()
{
# declaring IFS local in this function, removes the need to
# save/restore it
local IFS o
test -x $SDPTOOL || return 1
# FIXME: where does SDPTOOL_OPTIONS come from?
if ! test -z "$SDPTOOL_OPTIONS" ; then
IFS=";"
for o in $SDPTOOL_OPTIONS ; do
#echo "execing $SDPTOOL $o"
IFS=" "
if [ "$VERBOSE" != no ]; then
$SDPTOOL $o
else
$SDPTOOL $o >/dev/null 2>&1
fi
done
fi
}
hci_input()
{
log_progress_msg "switching to HID/HCI no longer done in init script, see /usr/share/doc/bluez/NEWS.Debian.gz" || :
}
alias enable_hci_input=hci_input
alias disable_hci_input=hci_input
case $1 in
start)
log_daemon_msg "Starting $DESC"
if test "$BLUETOOTH_ENABLED" = 0; then
log_progress_msg "disabled. see /etc/default/bluetooth"
log_end_msg 0
exit 0
fi
start-stop-daemon --start --background $SSD_OPTIONS
log_progress_msg "${DAEMON##*/}"
run_sdptool || :
if test "$HID2HCI_ENABLED" = 1; then
enable_hci_input
fi
log_end_msg 0
;;
stop)
log_daemon_msg "Stopping $DESC"
if test "$BLUETOOTH_ENABLED" = 0; then
log_progress_msg "disabled."
log_end_msg 0
exit 0
fi
if test "$HID2HCI_UNDO" = 1; then
disable_hci_input
fi
start-stop-daemon --stop $SSD_OPTIONS
log_progress_msg "${DAEMON}"
log_end_msg 0
;;
restart|force-reload)
$0 stop
sleep 1
$0 start
;;
status)
status_of_proc "$DAEMON" "$DESC" && exit 0 || exit $?
;;
*)
N=/etc/init.d/bluetooth
echo "Usage: $N {start|stop|restart|force-reload|status}" >&2
exit 1
;;
esac
exit 0
# vim:noet