#! /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 # LSB 3.0 compilance and enhancements by Filippo Giunchedi # # Updated for bluez 4.7 by Mario Limonciello # Updated for bluez 5.5 by Nobuhiro Iwamatsu # # Note: older daemons like dund pand hidd are now shipped inside the # bluez-compat package setglobal PATH = '/sbin:/bin:/usr/sbin:/usr/bin' setglobal DESC = 'bluetooth' setglobal DAEMON = '/usr/sbin/bluetoothd' setglobal HCIATTACH = '/usr/bin/hciattach' setglobal BLUETOOTH_ENABLED = '0' setglobal HID2HCI_ENABLED = '1' setglobal HID2HCI_UNDO = '1' setglobal SDPTOOL = '/usr/bin/sdptool' # If you want to be ignore error of "org.freedesktop.hostname1", # please enable NOPLUGIN_OPTION. # NOPLUGIN_OPTION="--noplugin=hostname" setglobal NOPLUGIN_OPTION = ''"" setglobal 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 && source /etc/default/bluetooth test -f /etc/default/rcS && source /etc/default/rcS source /lib/lsb/init-functions set -e # FIXME: this function is possibly a no-op proc 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 { setglobal IFS = '";'" for o in [$SDPTOOL_OPTIONS] { #echo "execing $SDPTOOL $o" setglobal IFS = '" '" if test $VERBOSE != no { $SDPTOOL $o } else { $SDPTOOL $o >/dev/null !2 > !1 } } } } proc 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 match $1 { with start log_daemon_msg "Starting $DESC" if test $BLUETOOTH_ENABLED = 0 { log_progress_msg "disabled. see /etc/default/bluetooth" log_end_msg 0 exit 0 } start-stop-daemon --start --background $SSD_OPTIONS log_progress_msg $(DAEMON##*/) run_sdptool || : if test $HID2HCI_ENABLED = 1 { enable_hci_input } log_end_msg 0 with stop log_daemon_msg "Stopping $DESC" if test $BLUETOOTH_ENABLED = 0 { log_progress_msg "disabled." log_end_msg 0 exit 0 } if test $HID2HCI_UNDO = 1 { disable_hci_input } start-stop-daemon --stop $SSD_OPTIONS log_progress_msg $(DAEMON) log_end_msg 0 with restart|force-reload $0 stop sleep 1 $0 start with status status_of_proc $DAEMON $DESC && exit 0 || exit $? with * setglobal N = '/etc/init.d/bluetooth' echo "Usage: $N {start|stop|restart|force-reload|status}" > !2 exit 1 } exit 0 # vim:noet