136 lines
2.9 KiB
Bash
Executable File
136 lines
2.9 KiB
Bash
Executable File
#! /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
|
|
|
|
BLUETOOTH_ENABLED=0
|
|
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
|