值得一提的是,守护程序名称blued(至少在macOS 10.11 El Capitan之前)已更改为bluetoothd。
因此,根据macOS的版本,您需要在以下命令中更改守护程序名称。
要注意的另一件事是,由于El Capitan中引入了SIP(系统完整性保护),因此卸载然后加载守护程序的plist(而不是先停止然后再启动或发送HUP信号)可能不起作用。但是,当您在El Capitan之前禁用SIP或在macOS上时,它应该可以工作。
$ sudo launchctl unload /System/Library/LaunchDaemons/com.apple.blued.plist
$ sudo launchctl load /System/Library/LaunchDaemons/com.apple.blued.plist
即使在SIP环境中(在El Capitan之后),您也可以简单地启动launchctl停止然后启动启动守护程序。
$ sudo launchctl stop com.apple.bluetoothd # or blued based on macOS version
$ sudo launchctl start com.apple.bluetoothd
如果您只想更改蓝牙的状态(开|关),而不希望守护程序真正重启,则可以执行以下操作:
# Let bluetooth be on
$ sudo defaults write
/Library/Preferences/com.apple.Bluetooth ControllerPowerState -int 1
# let bluetooth be off
$ sudo defaults write
/Library/Preferences/com.apple.Bluetooth ControllerPowerState -int 0
# Then reload the daemon
$ sudo killall -HUP bluetoothd # or blued based on macOS version
# On a macOS system which has proctools installed, you can replace `killall` to `pkill`
Blueutil很酷,但是它使用了IOBluetooth.framework的一些私有 API,因此它可能无法在macOS的未来版本中使用。