Comment redémarrer le service Bluetooth à partir de la ligne de commande

28

Sous Linux, si l'on souhaite redémarrer le service Bluetooth, il suffit de lancer un terminal et d'émettre la commande suivante:

sudo /etc/init.d/bluetooth restart

Quel est l'équivalent sur Mac OS X? Je voudrais redémarrer mon Bluetooth sans avoir à redémarrer tout l'ordinateur.

J'utilise Yosemite.

Mise à jour: Parmi les différentes options de ligne de commande fournies par Testing ci-dessous, la seule qui semblait fonctionner était la dernière, à savoir:

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

Mise à jour 2: la commande ci-dessus ne fonctionne plus et je me demande si elle l'a jamais fait. La première fois que je l'ai essayé, c'est peut-être autre chose qui a redémarré mes services Bluetooth. La seule chose qui fonctionnera pour moi est un redémarrage de la machine entière tous les matins.

Zeeple
la source
Quelle version d'OS X? Il semble que cela puisse être important dans ce cas.
tim.rohrer
Si l'installation d'une autre application est une option, vous pouvez consulter cet aperçu
tim.rohrer
Excellente question. Investir toujours le point. Je pense qu'il y a une voie propre sur Maverickset Yosemite.
dan
J'ai supprimé le com.apple.Bluetooth.plist de / Library / Preferences / SystemConfiguration / ou / Library / Preferences / et redémarré> fixe. les commandes de terminal ci-dessous n'ont pas fonctionné pour moi - mais bien sûr, vous pouvez créer une commande de terminal qui supprime ce fichier puis redémarre votre mac :)
Thieme Hennis

Réponses:

26

Sur High Sierra, aucune des options de ligne de commande ne fonctionnait pour moi. J'ai pu brancher une souris USB filaire et utiliser l'option Shift + avec la solution Debug / Rest.

J'ai essayé la solution blueutil sur ma High Sierra, et cela a fonctionné comme un charme. J'ai régulièrement Bluetooth sur mon MBPR 2015 avec un tuyau Apple Magic Mouse et je dois redémarrer. Oui, je pourrais ouvrir le couvercle et utiliser le pavé tactile, mais il est de l'autre côté du mur depuis mon bureau.

Vous pouvez installer blueutil en utilisant Homebrew:

brew install blueutil

Ou vous pouvez le compiler et l'installer à la main en utilisant:

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

Maintenant, lancez:

blueutil -p 0 && sleep 1 && blueutil -p 1
sygibson
la source
J'utilise 10.13.3 et viens d'utiliser avec succès la ligne de commande blueutil publiée ci-dessus. Merci pour ça!
Chris Sia
3
Enfin, quelque chose qui fonctionne !!!
Mirko
6
La commande n'a pas fonctionné pour moi. J'ai dû exécuter blueutil -p 0 && sleep 1 && blueutil -p 1également un ~/binmessage indiquant que l'emplacement n'existe pas. Requis l'emplacement complet qui était /usr/local/bin. A parfaitement fonctionné alors pour moi. Merci.
Oliver
Le test de course semble réussi, mais commence toujours par ./test: line 3: read: 0.001: invalid timeout specificationAlors quand je cours, blueutil off && sleep 1 && blueutil onje reçois-bash: blueutil: command not found
skybondsor
2
Juste pour signaler que vous pouvez installer ceci avec homebrew:brew install blueutil
Alter Lagos
17

Sur El Capitan, c'est un peu délicat car il ne vous permet pas de décharger les services système. Cependant, une méthode de force brute est:
sudo pkill blued
'blued' est le démon bluetooth OS X, et il redémarrera automatiquement une fois terminé (au moins lorsque je l'ai testé sur ma machine El Capitan). Les autres démons associés sont: com.apple.bluetoothReporter, com.apple.IOBluetoothUSBDFU et com.apple.bluetoothaudiod (vous pouvez consulter les démons exécutés à l'aide sudo launchctl list)

Vous pouvez également essayer:

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

Si vous avez une ancienne version d'OS X, c'est plus propre:

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

ou

sudo kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport
sudo kextload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport
Essai
la source
J'ai essayé les trois commandes que vous avez suggérées et aucune d'entre elles ne tuerait et / ou ne redémarrerait le bluetooth. Je dis cela parce que je pouvais toujours utiliser ma souris et mon clavier Bluetooth après avoir émis la version «kill» de chacune des commandes. D'autres idées? Je suis sur Yosemite en ce moment.
Zeeple
@zeeple: vous avez raison. Toutes les commandes fournies par @Testing entraîneront un redémarrage automatique des démons tués car ils sont configurés de cette manière par launchd(quelle interface de commande est launchctl).
dan
Ce matin, aucune de ces commandes ne fonctionne pour que mon bluetooth fonctionne à nouveau. La seule chose qui fonctionnerait était un redémarrage du système d'exploitation.
zeeple
Sur El Capitan, la sudo launchctl stop com.apple.bluedcommande redémarre en effet automatiquement le démon sans la commande start. Les anciennes commandes ne font rien sur El Capitan, donc malheureusement je n'ai pas beaucoup plus d'informations (j'ai mis à niveau ma dernière machine Yosemite il y a quelques semaines).
Test du
Malheureusement, je travaille pour une entreprise géante avec un département informatique à l'envers. Ils ne permettront pas la mise à niveau vers quoi que ce soit au-delà de Yosemite. Aucune des commandes ci-dessus ne fonctionne du tout pour moi. Redémarrer la machine entière chaque matin est la seule chose qui fonctionnera.
Zeeple
7

Une chose à mentionner est le nom du démon bleui (au moins jusqu'à macOS 10.11 El Capitan), a été changé en bluetoothd .

Donc, en fonction de la version de macOS, vous devez changer le nom du démon dans la ou les commandes ci-dessous.

Une autre chose à noter est que, décharger puis charger la liste du démon (au lieu d'arrêter puis de démarrer ou d'envoyer un signal HUP) peut ne pas fonctionner en raison de la SIP (System Integrity Protection) introduite dans El Capitan. Mais cela devrait fonctionner lorsque vous avez désactivé le SIP ou sur macOS avant El Capitan.

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

Même dans l'environnement SIP (après El Capitan), vous pouvez simplement lancer stopctl puis launchctl démarrer le démon.

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

Dans le cas où vous souhaitez simplement changer le statut (on | off) de Bluetooth, ne pas vouloir que le démon redémarre réellement, vous pouvez faire ce qui suit,

# 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 est un truc sympa, mais il utilise certaines API privées de IOBluetooth.framework, il peut donc ne pas fonctionner sur la future version de macOS.

mogutan88
la source
5

Cet outil de ligne de commande tiers semble fonctionner jusqu'à High Sierra, éliminant les différences entre les versions OSX: https://github.com/toy/blueutil

miemo
la source
fonctionne pour moi sur 10.13 blueutil off && blueutil s && blueutil onplus il peut être installé via brewbrew install blueutil
urandom
4
sudo pkill bluetoothd

Fonctionne pour moi sur macOS High Sierra Mon Logitech mx ne fonctionne parfois pas après le sommeil. Comme je l'ai lu, ce n'est pas à cause de la souris, c'est un bug de macOS Smart Bluetooth. Mais mon clavier Apple fonctionne toujours, je n'ai jamais eu ce problème. Parfois, je réveille mon ordinateur, le clavier Apple fonctionne mais la souris Logitech ne fonctionne pas. Donc, sans la souris, je ne peux pas redémarrer Bluetooth à partir du système (je pourrais fermer mais mon clavier disparaît également, donc je ne peux pas redémarrer à nouveau) J'ai commencé à utiliser cette commande à partir du terminal, il arrête le service mais lorsque le service s'arrête, il se redémarre automatiquement . Et ma souris commence à fonctionner en une seconde!

Yusuf
la source
4

Pour mon Macbook Pro 2017 avec macOS High Sierra 10.13.6, je redémarre le bluetooth en utilisant le script bash suivant:

#!/bin/bash

sudo launchctl stop com.apple.bluetoothd
sudo launchctl start com.apple.bluetoothd
Mark Winterbottom
la source
2

J'ai trouvé cette page sur GitHub Gist avec des commandes qui fonctionnaient pour moi (j'utilise Yosemite v. 10.10.5). Vous pouvez simplement taper ce qui suit dans le terminal pour redémarrer le démon Bluetooth sans redémarrer:

sudo kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport

sudo kextload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport 

Miriam Marling
la source
1

J'utilise Yosemite v10.10.5 et aucun autre commentaire / résumé n'a fonctionné pour moi. Les seules étapes que j'ai réussi à comprendre pour faire revivre le pilote Bluetooth étaient:

  1. Exécutez sudo kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransportdans le terminal
  2. Redémarrez l'ordinateur sans conserver les fenêtres ouvertes
EnriqueH
la source
4
Pour moi, il suffit de redémarrer l'ordinateur. Ce que je recherche, c'est une méthode en ligne de commande pour le faire sans avoir à redémarrer la machine entière.
zeeple