bluez/bluetooth.init

139 lines
2.3 KiB
Bash

#!/bin/sh
#
# chkconfig: 345 50 83
# description: Bluetooth services for service discovery, authentication, \
# Human Interface Devices, etc.
#
### BEGIN INIT INFO
# Required-Start: $syslog messagebus
# Short-Description: Bluetooth services
# Description: Bluetooth services for service discovery, authentication,
# Human Interface Devices, etc.
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
[ -e /etc/sysconfig/bluetooth ] && . /etc/sysconfig/bluetooth
is_enabled_in_runlevel()
{
level=`runlevel | awk '{print $2;}'`
#check file in runlevel
[ -f /etc/rc$level.d/S??bluetooth ]
return $?
}
has_bt_devices()
{
#Look for Bluetooth adapters:
udevadm info --export-db | grep -q -e '/devices/.*/bluetooth/.*'
return $?
}
check_condstart()
{
is_enabled_in_runlevel || return $?
/sbin/service bluetooth status && return 1
#Look for Bluetooth adapters:
has_bt_devices && return 0
return 1
}
condstart()
{
if [ "$BLUETOOTH_ONDEMAND" = "true" ]; then
start
return $?
fi
return 1
}
start()
{
if [ "$BLUETOOTH_ONDEMAND" = "true" ]; then
check_condstart || return 1
fi
echo -n $"Starting Bluetooth services:"
daemon /usr/sbin/bluetoothd
RETVAL=$?
[ $RETVAL = 0 ] && touch /var/lock/subsys/bluetoothd
[ "$HID2HCI_ENABLE" = "true" ] && hid2hci --tohci > /dev/null 2>&1 || :
touch /var/lock/subsys/bluetooth
echo ""
return $RETVAL
}
stop()
{
echo -n "Stopping Bluetooth services:"
[ "$HID2HCI_UNDO" = "true" ] && hid2hci --tohid > /dev/null 2>&1 || :
killproc bluetoothd
RETVAL=$?
rm -f /var/lock/subsys/bluetooth
rm -f /var/lock/subsys/bluetoothd
echo ""
return $RETVAL
}
check_condstop()
{
is_enabled_in_runlevel || return $?
/sbin/service bluetooth status || return $?
#Look for Bluetooth adapters:
has_bt_devices && return 1
return 0
}
condstop()
{
if [ "$BLUETOOTH_ONDEMAND" = "true" ]; then
check_condstop || return 1
else
return 2
fi
stop
return $?
}
case "$1" in
start)
start
;;
condstart)
condstart
;;
stop)
stop
;;
condstop)
condstop
;;
force-reload|restart|reload)
stop
start
;;
try-restart|condrestart)
[ -e /var/lock/subsys/bluetooth ] && (stop; start)
;;
status)
status bluetoothd
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|status|restart|reload|condrestart|condstart|condstop}"
exit 3
;;
esac
exit $RETVAL