So starten Sie den Bluetooth-Dienst über die Befehlszeile neu

27

Wenn man unter Linux den Bluetooth-Dienst neu starten möchte, startet man einfach ein Terminal und gibt den folgenden Befehl aus:

sudo /etc/init.d/bluetooth restart

Was ist das Äquivalent unter Mac OS X? Ich möchte mein Bluetooth neu starten, ohne den gesamten Computer neu starten zu müssen.

Ich benutze Yosemite.

Update: Von den verschiedenen Befehlszeilenoptionen, die von Testing bereitgestellt wurden, schien nur die letzte zu funktionieren:

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

Update 2: Der obige Befehl funktioniert nicht mehr und ich frage mich, ob er jemals funktioniert hat. Das erste Mal, als ich es versuchte, war es möglicherweise etwas anderes, das meine Bluetooth-Dienste neu startete. Das einzige, was für mich funktionieren wird, ist ein Neustart der gesamten Maschine jeden Morgen.

zeeple
quelle
Welche Version von OS X? Es scheint in diesem Fall von Bedeutung zu sein.
tim.rohrer
Wenn die Installation einer anderen App eine Option ist, können Sie sich diese Liste ansehen: gist.github.com/ralph-hm/a65840c4f5e439b90170d735a89a863f
tim.rohrer
Hervorragende Frage. Immer noch den Punkt investieren. Ich denke es gibt einen sauberen Weg an Mavericksund Yosemite.
Dan
Ich habe die com.apple.Bluetooth.plist aus / Library / Preferences / SystemConfiguration / oder / Library / Preferences / entfernt und neu gestartet> behoben. Die folgenden Terminalbefehle haben bei mir nicht funktioniert - aber Sie können natürlich einen Terminalbefehl erstellen, der diese Datei entfernt und dann Ihren Mac neu startet :)
Thieme Hennis

Antworten:

25

In High Sierra funktionierte keine der Befehlszeilenoptionen für mich. Ich konnte eine kabelgebundene USB-Maus anschließen und die Shift + Option mit Debug / Rest-Lösung verwenden.

Ich habe die blueutil-Lösung auf meiner High Sierra ausprobiert und es hat wie ein Zauber gewirkt. Ich habe regelmäßig Bluetooth auf meinem 2015 MBPR mit einem Apple Magic Mouse-Schlauch und muss neu starten. Ja, ich könnte den Deckel öffnen und das Trackpad verwenden, aber es befindet sich auf der anderen Seite der Wand von meinem Schreibtisch aus.

Sie können blueutil mit Homebrew installieren :

brew install blueutil

Oder Sie können es von Hand kompilieren und installieren mit:

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

Führen Sie nun Folgendes aus:

blueutil -p 0 && sleep 1 && blueutil -p 1
Sygibson
quelle
Ich lasse 10.13.3 laufen und benutzte gerade erfolgreich die Befehlszeile blueutil, die oben bekannt gegeben wurde. Danke für das!
Chris Sia
3
Endlich etwas, das funktioniert !!!
Mirko
6
Der Befehl hat bei mir nicht funktioniert. Ich musste ausgeführt werden. blueutil -p 0 && sleep 1 && blueutil -p 1Außerdem wurde ~/binfestgestellt, dass die Standortmeldung nicht vorhanden ist. Benötigte den vollständigen Standort, der war /usr/local/bin. Hat dann für mich perfekt funktioniert. Vielen Dank.
Oliver
./test: line 3: read: 0.001: invalid timeout specificationblueutil off && sleep 1 && blueutil on-bash: blueutil: command not found
Lauftest
2
Ich möchte nur darauf hinweisen, dass Sie dies mit Homebrew installieren können:brew install blueutil
Alter Lagos
17

Auf El Capitan ist es etwas knifflig, weil Sie damit keine Systemdienste entladen können. Eine Brute-Force-Methode ist jedoch:
sudo pkill blued
'blued' ist der OS X-Bluetooth-Daemon und wird beim Beenden automatisch neu gestartet (zumindest, als ich ihn auf meinem El Capitan-Computer getestet habe). Andere verwandte Daemons sind: com.apple.bluetoothReporter, com.apple.IOBluetoothUSBDFU und com.apple.bluetoothaudiod (Sie können sich die laufenden Daemons mit ansehen sudo launchctl list)

Sie können auch versuchen:

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

Wenn Sie eine ältere OS X-Version haben, ist diese sauberer:

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

oder

sudo kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport
sudo kextload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport
Testen
quelle
Ich habe alle drei von Ihnen vorgeschlagenen Befehle ausprobiert und keiner von ihnen würde Bluetooth beenden und / oder neu starten. Ich sage das, weil ich meine Bluetooth-Maus und -Tastatur noch verwenden konnte, nachdem ich die Kill-Version für jeden Befehl ausgegeben hatte. Irgendwelche anderen Ideen? Ich bin im Moment auf Yosemite.
Zeeple
@zeeple: du hast recht. Alle von @Testing bereitgestellten Befehle führen zu einem automatischen Neustart der getöteten Dämonen, da sie auf diese Weise konfiguriert werden launchd(welche Befehlsschnittstelle ist launchctl).
Dan
Heute Morgen funktioniert keiner dieser Befehle, um mein Bluetooth wieder zum Laufen zu bringen. Das einzige, was funktionieren würde, war ein Neustart des Betriebssystems.
Zeeple
Auf El Capitan sudo launchctl stop com.apple.bluedstartet der Befehl den Daemon in der Tat automatisch neu, ohne den Startbefehl. Die älteren Befehle haben auf El Capitan nichts zu suchen, daher habe ich leider keinen besseren Einblick (ich habe meine letzte Yosemite-Maschine erst vor ein paar Wochen aktualisiert).
Testen
Leider arbeite ich für ein riesiges Unternehmen mit einer rückständigen IT-Abteilung. Sie erlauben kein Upgrade auf etwas anderes als Yosemite. Keiner der obigen Befehle funktioniert für mich überhaupt. Ein Neustart der gesamten Maschine jeden Morgen ist das einzige, was funktionieren wird.
Zeeple
7

Eine Sache zu erwähnen ist der Daemon Name brüniert (zumindest bis macOS 10.11 El Capitan), wurde geändert bluetoothd .

Abhängig von der Version des MacOS müssen Sie den Namen des Daemons in den folgenden Befehlen ändern.

Eine weitere zu beachtende Sache ist, dass das Entladen und Laden der Daemon-Plist (anstatt zu stoppen und dann zu starten oder ein HUP-Signal zu senden) aufgrund des in El Capitan eingeführten SIP (System Integrity Protection) möglicherweise nicht funktioniert. Es sollte aber funktionieren, wenn Sie das SIP oder auf MacOS vor El Capitan deaktiviert haben.

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

Selbst in der SIP-Umgebung (nach El Capitan) können Sie den Daemon einfach starten, stoppen und starten .

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

Wenn Sie nur den Status (Ein | Aus) von Bluetooth ändern möchten und nicht möchten, dass der Dämon tatsächlich neu gestartet wird, können Sie Folgendes tun:

# 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 ist cool, verwendet jedoch einige private APIs von IOBluetooth.framework, sodass es möglicherweise nicht auf der zukünftigen Version von macOS funktioniert.

mogutan88
quelle
5

Dieses Befehlszeilentool von Drittanbietern scheint bis nach High Sierra zu funktionieren und die Unterschiede zwischen den OSX-Versionen zu beseitigen: https://github.com/toy/blueutil

miemo
quelle
funktioniert bei mir auf 10,13 blueutil off && blueutil s && blueutil onplus es kann über Gebräu installiert werdenbrew install blueutil
urandom
4
sudo pkill bluetoothd

Funktioniert für mich unter macOS High Sierra Mein Logitech mx funktioniert manchmal nicht nach dem Schlafengehen. Da ich es nicht wegen der Maus gelesen habe, handelt es sich um einen macOS Smart Bluetooth-Fehler. Aber meine Apple-Tastatur funktioniert immer und hat dieses Problem nie bekommen. Manchmal wecke ich meinen Computer auf, die Apple-Tastatur funktioniert, aber die Logitech-Maus funktioniert nicht. Ohne die Maus kann ich Bluetooth nicht vom System aus neu starten (ich könnte schließen, aber meine Tastatur geht auch weg, kann also nicht neu starten). Ich habe begonnen, diesen Befehl vom Terminal aus zu verwenden. Er stoppt den Dienst, aber wenn der Dienst stoppt, startet er sich automatisch neu . Und meine Maus beginnt innerhalb einer Sekunde zu arbeiten!

Yusuf
quelle
4

Für mein Macbook Pro 2017 mit macOS High Sierra 10.13.6 starte ich Bluetooth mithilfe des folgenden Bash-Skripts neu:

#!/bin/bash

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

Ich habe diese Seite auf GitHub Gist mit Befehlen gefunden, die für mich funktionierten (ich verwende Yosemite v. 10.10.5). Sie können einfach Folgendes in das Terminal eingeben, um den Bluetooth-Daemon ohne Neustart neu zu starten:

sudo kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport

sudo kextload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport 

Miriam Marling
quelle
1

Ich verwende Yosemite 10.10.5 und keiner der anderen Kommentare / Gists hat für mich funktioniert. Die einzigen Schritte, die ich geschafft habe, um den Bluetooth-Treiber wieder zum Leben zu erwecken, waren:

  1. Führen Sie sudo kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransportim Terminal aus
  2. Starten Sie den Computer neu, ohne die geöffneten Fenster beizubehalten
EnriqueH
quelle
4
Für mich reicht ein Neustart des Computers aus. Was ich suche, ist eine Befehlszeilenmethode, ohne den gesamten Computer neu starten zu müssen.
Zeeple