| #! /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 |