Cómo reiniciar el servicio Bluetooth desde la línea de comando

27

En Linux, si se desea reiniciar el servicio Bluetooth, simplemente inician un terminal y emiten el siguiente comando:

sudo /etc/init.d/bluetooth restart

¿Cuál es el equivalente en Mac OS X? Me gustaría reiniciar mi Bluetooth sin tener que reiniciar toda la computadora.

Estoy usando Yosemite.

Actualización: de las diversas opciones de línea de comandos proporcionadas por las pruebas a continuación, la única que parecía funcionar era la última, que es esta:

sudo kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport
sudo kextload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport

Actualización 2: El comando anterior ya no funciona y me pregunto si alguna vez lo hizo. La primera vez que lo intenté podría haber sido algo más que reiniciara mis servicios de bluetooth. Lo único que funcionará para mí es reiniciar toda la máquina todas las mañanas.

zeeple
fuente
¿Qué versión de OS X? Parece que puede importar en este caso.
tim.rohrer
Si instalar otra aplicación es una opción, puede consultar esta esencia: gist.github.com/ralph-hm/a65840c4f5e439b90170d735a89a863f
tim.rohrer el
Excelente pregunta Todavía invirtiendo el punto. Creo que hay un camino limpio Mavericksy Yosemite.
dan
Eliminé com.apple.Bluetooth.plist de / Library / Preferences / SystemConfiguration / o / Library / Preferences / y reinicié> fixed. los comandos de terminal a continuación no funcionaron para mí, pero por supuesto puedes hacer un comando de terminal que elimine este archivo y luego reinicie tu mac :)
Thieme Hennis

Respuestas:

25

En High Sierra, ninguna de las opciones de línea de comando funcionó para mí. Pude conectar un mouse USB con cable y usar la opción Shift + con la solución Debug / Rest.

Probé la solución blueutil en mi High Sierra, y funcionó de maravilla. Regularmente tengo Bluetooth en mi MBPR 2015 con una manguera Apple Magic Mouse y tengo que reiniciar. Sí, podría abrir la tapa y usar el panel táctil, pero está al otro lado de la pared desde el espacio de mi escritorio.

Puedes instalar blueutil usando Homebrew:

brew install blueutil

O puede compilarlo e instalarlo a mano usando:

cd ~/tmp/
git clone https://github.com/toy/blueutil.git
cd blueutil
make
make test 
cp blueutil ~/bin/

Ahora ejecuta:

blueutil -p 0 && sleep 1 && blueutil -p 1
sygibson
fuente
Estoy ejecutando 10.13.3 y solo utilicé con éxito la línea de comando blueutil publicada anteriormente. ¡Gracias por eso!
Chris Sia
3
Finalmente, algo que funciona !!!
Mirko
66
El comando no funcionó para mí. Tuve que ejecutar blueutil -p 0 && sleep 1 && blueutil -p 1También ~/binresultó en mensaje de ubicación no existe. Se requiere la ubicación completa que era /usr/local/bin. Funcionó perfectamente entonces para mí. Gracias.
Oliver
La prueba de ejecución parece exitosa, pero siempre comienza con ./test: line 3: read: 0.001: invalid timeout specificationLuego, cuando corro blueutil off && sleep 1 && blueutil onme sale-bash: blueutil: command not found
skybondsor
2
Solo señalando que puede instalar esto con homebrew:brew install blueutil
Alter Lagos
17

En El Capitán, es un poco complicado porque no le permite descargar servicios del sistema. Sin embargo, un método de fuerza bruta es:
sudo pkill blued
'blued' es el demonio bluetooth OS X, y se reiniciará automáticamente cuando finalice (al menos cuando lo probé en mi máquina El Capitan). Otros daemons relacionados son: com.apple.bluetoothReporter, com.apple.IOBluetoothUSBDFU y com.apple.bluetoothaudiod (puede ver los daemons que se ejecutan usando sudo launchctl list)

También puedes probar:

sudo launchctl stop com.apple.blued
sudo launchctl start com.apple.blued

Si tiene una versión anterior de OS X, es más limpia:

sudo launchctl unload /System/Library/LaunchDaemons/com.apple.blued.plist
sudo launchctl load /System/Library/LaunchDaemons/com.apple.blued.plist

o

sudo kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport
sudo kextload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport
Pruebas
fuente
Intenté los tres comandos que sugirió y ninguno de ellos mataría y / o reiniciaría Bluetooth. Digo esto porque todavía podía usar mi mouse y teclado bluetooth después de emitir la versión 'kill' de cada uno de los comandos. ¿Alguna otra idea? Estoy en Yosemite en este momento.
zeeple
@zeeple: tienes razón. Todos los comandos proporcionados por @Testing provocarán un reinicio automático de los demonios muertos porque están configurados de esta manera por launchd(qué interfaz de comando es launchctl).
dan
Esta mañana ninguno de estos comandos está funcionando para que mi bluetooth vuelva a funcionar. Lo único que funcionaría era reiniciar el sistema operativo.
zeeple
En El Capitan, el sudo launchctl stop com.apple.bluedcomando reinicia automáticamente el demonio sin el comando de inicio. Los comandos anteriores no hacen nada en El Capitán, así que desafortunadamente no tengo mucha más información (actualicé mi última máquina Yosemite hace solo un par de semanas).
Pruebas el
Lamentablemente, trabajo para una empresa gigante con un departamento de TI al revés. No permitirán la actualización a nada más allá de Yosemite. Ninguno de los comandos anteriores me funciona en absoluto. Reiniciar toda la máquina todas las mañanas es lo único que funcionará.
zeeple
7

Una cosa para mencionar es que el nombre del demonio blued (al menos hasta macOS 10.11 El Capitan), se ha cambiado a bluetoothd .

Entonces, según la versión de macOS, debe cambiar el nombre del daemon en los siguientes comandos.

Otra cosa a tener en cuenta es que, descargar y luego cargar la lista del demonio (en lugar de detener y luego iniciar o enviar la señal HUP) puede no funcionar debido a la SIP (Protección de integridad del sistema) introducida en El Capitan. Pero debería funcionar cuando desactivó el SIP o en macOS antes de El Capitan.

$ sudo launchctl unload /System/Library/LaunchDaemons/com.apple.blued.plist
$ sudo launchctl load /System/Library/LaunchDaemons/com.apple.blued.plist

Incluso en el entorno SIP (después de El Capitán), simplemente puede ejecutarctl stop y luego launchctl iniciar el demonio.

$ sudo launchctl stop com.apple.bluetoothd # or blued based on macOS version
$ sudo launchctl start com.apple.bluetoothd

En caso de que solo desee cambiar el estado (activado | desactivado) de bluetooth, sin querer que el demonio se reinicie, puede hacer lo siguiente,

# 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 es algo genial, pero está utilizando algunas API privadas de IOBluetooth.framework, por lo que es posible que no funcione en la versión futura de macOS.

mogutan88
fuente
5

Esta herramienta de línea de comandos de terceros parece funcionar hasta High Sierra, abstrayendo las diferencias entre las versiones de OSX: https://github.com/toy/blueutil

miemo
fuente
funciona para mí en 10.13 blueutil off && blueutil s && blueutil onmás, se puede instalar a través de brewbrew install blueutil
urandom
4
sudo pkill bluetoothd

Funciona para mí en macOS High Sierra My Logitech mx en cualquier lugar no funciona después de dormir a veces. Como leí, no es por el mouse, es un error de macOS Smart Bluetooth. Pero mi teclado Apple siempre funciona, nunca tuve este problema. A veces despierto mi computadora, el teclado de Apple funciona pero el mouse Logitech no funciona. Entonces, sin el mouse, no puedo reiniciar Bluetooth desde el sistema (podría cerrar pero mi teclado también desaparece, así que no puedo reiniciar nuevamente) Comencé a usar este comando desde la terminal, detiene el servicio pero cuando el servicio se detiene, se reinicia automáticamente . ¡Y mi mouse comienza a funcionar en un segundo!

Yusuf
fuente
4

Para mi Macbook Pro 2017 con macOS High Sierra 10.13.6, reinicio bluetooth usando el siguiente script bash:

#!/bin/bash

sudo launchctl stop com.apple.bluetoothd
sudo launchctl start com.apple.bluetoothd
Mark Winterbottom
fuente
2

Encontré esta página en GitHub Gist con comandos que me funcionaron (estoy ejecutando Yosemite v. 10.10.5). Simplemente puede escribir lo siguiente en el terminal para reiniciar el demonio bluetooth sin reiniciar:

sudo kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport

sudo kextload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport 

Miriam Marling
fuente
1

Estoy ejecutando Yosemite v10.10.5 y ninguno de los otros comentarios / esencias me funcionó en absoluto. Los únicos pasos que me las arreglé para dar vida al controlador bluetooth fueron:

  1. Ejecuta sudo kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransporten la terminal
  2. Reinicie la computadora sin conservar las ventanas abiertas
EnriqueH
fuente
44
Para mí, simplemente reiniciar la computadora hace el truco. Lo que estoy buscando es una forma de línea de comandos para hacerlo sin tener que reiniciar toda la máquina.
zeeple