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

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 auf 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 unten bereitgestellt werden, war die einzige, die zu funktionieren schien, die letzte, nämlich diese:

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 das jemals getan hat. Als ich es das erste Mal ausprobierte, war es möglicherweise etwas anderes, das meine Bluetooth-Dienste neu gestartet hat. Das einzige, was für mich funktioniert, ist ein Neustart der gesamten Maschine jeden Morgen.

Wenn die Installation einer anderen App eine Option ist, können Sie sich diese Zusammenfassung ansehen: gist.github.com/ralph-hm/a65840c4f5e439b90170d735a89a863f
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 natürlich können Sie einen Terminalbefehl erstellen, der diese Datei entfernt und dann Ihren Mac neu startet :)

Antworten (11)

Auf 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 sie hat wie ein Zauber funktioniert. 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 benutzen, aber es ist auf der anderen Seite der Wand als mein Schreibtisch.

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/

Jetzt ausführen:

blueutil -p 0 && sleep 1 && blueutil -p 1
Der Befehl hat bei mir nicht funktioniert. Ich musste rennen blueutil -p 0 && sleep 1 && blueutil -p 1Auch ~/binführte zu einer Meldung, dass der Standort nicht existiert. Erforderte den vollständigen Standort, der /usr/local/bin. Hat bei mir damals einwandfrei funktioniert. Vielen Dank.
Der Lauftest scheint erfolgreich zu sein, beginnt aber immer mit ./test: line 3: read: 0.001: invalid timeout specificationDann, wenn ich laufe blueutil off && sleep 1 && blueutil on, bekomme ich-bash: blueutil: command not found
Noch nie von diesem Dienstprogramm gehört, meinen Speck gerettet. v10.14.5für mich und es funktioniert super. Lässt sich auch mit Macports installieren, wenn Sie Brew auch nicht lieben.
Dieser Befehl kann nützlich sein, aber er startet den Bluetooth-Dienst nicht wirklich neu. Sie können dies überprüfen, indem Sie ausführen ps aux |grep -i blue. Die Antwort von Yusuf startet den Dienst neu:sudo pkill bluetoothd
@BryanRoach - Ich habe nie behauptet, dass die Bluetooth-Dienste neu gestartet wurden.
@sygibson - Die ursprüngliche Frage lautet "Wie starte ich den Bluetooth-Dienst von der Befehlszeile aus", also dachte ich, ich sollte zumindest darauf hinweisen.

Auf El Capitan ist es etwas knifflig, weil es Ihnen nicht erlaubt, Systemdienste zu entladen. Eine Brute-Force-Methode ist jedoch:
sudo pkill blued
'blued' ist der Bluetooth-Daemon von OS X und wird automatisch neu gestartet, wenn er beendet wird (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
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 immer noch verwenden konnte, nachdem ich die 'Kill'-Version jedes der Befehle ausgegeben hatte. Irgendwelche anderen Ideen? Ich bin im Moment auf Yosemite.
@zeeple: du hast recht. Alle von @Testing bereitgestellten Befehle führen zu einem automatischen Neustart von beendeten Daemons, da sie auf diese Weise von konfiguriert sind launchd(welche Befehlsschnittstelle ist launchctl).
Heute Morgen funktioniert keiner dieser Befehle, um mein Bluetooth wieder zum Laufen zu bringen. Das einzige, was funktionierte, war ein Neustart des Betriebssystems.
Auf El Capitan sudo launchctl stop com.apple.bluedstartet der Befehl den Daemon tatsächlich automatisch neu, ohne den Startbefehl. Die älteren Befehle machen auf El Capitan nichts, daher habe ich leider nicht viel mehr Einblick (ich habe meine letzte Yosemite-Maschine erst vor ein paar Wochen aktualisiert).
Leider arbeite ich für ein riesiges Unternehmen mit einer rückständigen IT-Abteilung. Sie werden kein Upgrade auf irgendetwas über Yosemite hinaus zulassen. Keiner der oben genannten Befehle funktioniert bei mir überhaupt. Das einzige, was funktioniert, ist jeden Morgen die gesamte Maschine neu zu starten.
kextunload & load hat bei mir auf Yosemite funktioniert
'sudo pkill blued' hat bei mir auf El Capitan nicht funktioniert.
sudo pkill blued repariert, dass meine Kopfhörer nicht gesehen werden, danke
sudo pkill bluetoothd

HINWEIS: Funktioniert bei mir unter macOS High Sierra

Meine Logitech MX Anywhere-Maus funktioniert nach dem Schlafen manchmal nicht. Wie ich gelesen habe, liegt es nicht an der Maus, sondern an einem MacOS Smart Bluetooth-Fehler. Aber meine Apple-Tastatur funktioniert immer, hat nie dieses Problem.

Manchmal wecke ich meinen Computer auf, die Apple-Tastatur funktioniert, aber die Logitech-Maus funktioniert nicht. Ohne die Maus kann ich also Bluetooth nicht vom System neu starten (ich könnte den Deckel schließen, aber meine Tastatur verschwindet auch, kann also nicht neu gestartet werden).

Ich habe angefangen, diesen Befehl vom Terminal aus zu verwenden, er stoppt den Dienst, aber wenn der Dienst stoppt, startet er sich automatisch neu. Und meine Maus funktioniert innerhalb einer Sekunde!

Oh schön, das repariert meine träge magische Maus
funktioniert wie ein Zauber in MacOS Monterrey 12.6
Möglicherweise läuft ein verwandter Bluetooth-Dienst namens BlueTool. Um alles neu zu starten, führen Sie aus ps aux |grep -i blue, um die PID für BlueTool abzurufen. Beenden Sie BlueTool mit sudo kill -9 <PID>. Wenn Sie es jetzt ausführen sudo pkill bluetoothd, werden beide Dienste neu gestartet.
Hat bei mir auf Monterey 12.6 funktioniert

Eine Sache, die zu erwähnen ist, ist, dass der Daemon-Name blued (zumindest bis macOS 10.11 El Capitan) in bluetoothd geändert wurde .

Basierend auf der Version von macOS müssen Sie also den Daemon-Namen in den folgenden Befehlen ändern.

Eine weitere zu beachtende Sache ist, dass das Entladen und Laden der Plist des Daemons (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. Aber es sollte 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

Sogar in der SIP-Umgebung (nach El Capitan) können Sie einfach ctl stop starten und dann den Daemon mit launchctl starten .

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

Falls Sie nur den Status (ein|aus) von Bluetooth ändern möchten und nicht möchten, dass der Daemon 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 cooles Zeug, aber es verwendet einige private APIs von IOBluetooth.framework, so dass es möglicherweise nicht auf der zukünftigen Version von macOS funktioniert.

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

#!/bin/bash

sudo launchctl stop com.apple.bluetoothd
sudo launchctl start com.apple.bluetoothd
Vielen Dank! Dies funktioniert auch unter macOS Monterey.

Dieses Befehlszeilentool eines Drittanbieters scheint bis zu High Sierra zu funktionieren und die Unterschiede zwischen den OSX-Versionen zu abstrahieren: https://github.com/toy/blueutil

funktioniert bei mir am 10.13 blueutil off && blueutil s && blueutil onund kann über brew installiert werdenbrew install blueutil

Fand diese Seite auf GitHub Gist mit Befehlen, 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 

Ich verwende Yosemite v10.10.5 und keiner der anderen Kommentare / Gists hat bei mir funktioniert. Die einzigen Schritte, die ich herausfinden konnte, 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
Bei mir reicht ein Neustart des Rechners aus. Was ich suche, ist eine Befehlszeilenmethode, ohne die gesamte Maschine neu starten zu müssen.

Auf BigSur können Sie einfach tun,

  1. Halten Sie die Umschalt- und die Wahltaste gedrückt und klicken Sie dann auf das Bluetooth-Symbol in der Menüleiste. Wenn es nicht da ist, fügen Sie es hinzu, indem Sie zu Systemeinstellungen > Bluetooth > Aktivieren Sie Bluetooth in der Menüleiste anzeigen .
  2. Wählen Sie dann im Menü Bluetooth-Modul zurücksetzen.
Wurde diese Option in Monterey 12.x entfernt? Umschalt+Wahl+Klick auf das BT-Symbol zeigt für mich keine Option zum Zurücksetzen an.
Sieht so aus, als wäre es in Monterey entfernt worden
Es ist auch in Ventura verschwunden

Alle hier in diesem Thread erwähnten Varianten funktionieren nicht richtig, offensichtlich eine Reihe von Fehlern in der Ausgabe. Ich möchte nur einen Alias ​​in bash_profile einfügen, um den Bluetooth-Dienst einfach vom Terminal aus / einzuschalten Ich kann einfach über den bash_profile-Alias ​​auslösen, indem ich nur einen kurzen Alias-Befehl wie blueon/blueoff ?

MBP:~ applehead$ > system_profiler SPSoftwareDataType Software:

System Software Overview:

  System Version: macOS 10.14.6 (18G9323)
  Kernel Version: Darwin 18.7.0
  Boot Volume: Macintosh HD
  Boot Mode: Normal
  Computer Name:  MBP_appleHead
  User Name: applehead (applehead)
  Secure Virtual Memory: Enabled
  System Integrity Protection: Enabled
  Time since boot: 4 days 17:11
Wenn Sie eine neue Frage haben, stellen Sie diese bitte, indem Sie auf die Schaltfläche „ Frage stellen“ klicken . Fügen Sie einen Link zu dieser Frage hinzu, wenn dies hilfreich ist, um den Kontext bereitzustellen. - Aus Bewertung

Mein Problem ist, Magic Mouse 2 von Macbook Air (Monterey 12.2) zu verlieren. Dann stellte ich fest, dass die CPU-Auslastung von bluetoothd hoch ist.

Was ich versucht habe, ist einfach bluetoothd zu töten. Und meine Magic Mouse 2 hat sich wieder verbunden, sobald ich bluetoothd beendet habe. Es scheint, dass bluetoothd automatisch neu gestartet wird.

Dies kann zwar eine Lösung sein, das OP hat jedoch ausdrücklich nach "von der Befehlszeile" gefragt.