コマンドラインからBluetoothサービスを再起動する方法


27

Linuxでは、Bluetoothサービスを再起動する場合は、単にターミナルを起動して次のコマンドを発行します。

sudo /etc/init.d/bluetooth restart

Mac OS Xで同等のものは何ですか?コンピューター全体を再起動せずに、Bluetoothを再起動したい。

を使用していYosemiteます。

更新:以下のテストで提供されるさまざまなコマンドラインオプションのうち、機能していると思われるものは最後の1つだけでした。

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

更新2:上記のコマンドは機能しなくなりました。初めて試してみたときに、Bluetoothサービスを再起動したのは他の何かかもしれません。私にとってうまくいく唯一のことは、毎朝マシン全体を再起動することです。


OS Xのどのバージョンですか?この場合、問題になるようです。
tim.rohrer

別のアプリのインストールがオプションの場合は、次の要点を確認してください:gist.github.com/ralph-hm/a65840c4f5e439b90170d735a89a863f
tim.rohrer

素晴らしい質問です。まだポイントを投資しています。私は、上のクリーンな方法があると思いますMavericksYosemite
ダン

/ Library / Preferences / SystemConfiguration /または/ Library / Preferences /からcom.apple.Bluetooth.plistを削除し、再起動して修正しました。以下の端末コマンドは私には機能しませんでした-もちろん、このファイルを削除してからMacを再起動する端末コマンドを作成できます:)
Thieme Hennis

回答:


25

High Sierraでは、どのコマンドラインオプションも機能しませんでした。有線USBマウスを接続し、Shift + Optionをデバッグ/レストソリューションと共に使用することができました。

High Sierraでblueutilソリューションを試してみましたが、それは魅力的でした。Apple Magic Mouseホースを接続した2015 MBPRでBluetoothを定期的に使用しているため、再起動する必要があります。蓋を開けてトラックパッドを使用することもできますが、デスクスペースから壁の反対側にあります。

Homebrewを使用してblueutilをインストールできます。

brew install blueutil

または、次を使用して手動でコンパイルおよびインストールできます。

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

次に実行します:

blueutil -p 0 && sleep 1 && blueutil -p 1

10.13.3を実行していますが、上記のコマンドラインblueutilを正常に使用しました。有難うございます!
クリス・シア

3
最後に、機能するもの!!!
ミルコ

6
コマンドは私のために機能しませんでした。実行する必要がありましたblueutil -p 0 && sleep 1 && blueutil -p 1また~/bin、場所が存在しないというメッセージが表示されました。完全な場所が必要でした/usr/local/bin。それから私のために完全に働いた。ありがとう。
オリバー

実行中のテストが成功したようだが、常にで始まり./test: line 3: read: 0.001: invalid timeout specification、私が実行したときに次にblueutil off && sleep 1 && blueutil on私が取得-bash: blueutil: command not found
skybondsor

2
ちょうどあなたが自作でこれをインストールすることができ指摘:brew install blueutil
アルターラゴス

17

El Capitanでは、システムサービスをアンロードできないため、ややこしいです。ただし、ブルートフォース方式は次のとおりです。
sudo pkill blued
「blued」はOS X bluetoothデーモンであり、終了すると自動的に再起動します(少なくともEl Capitanマシンでテストした場合)。その他の関連するデーモン:com.apple.bluetoothReporter、com.apple.IOBluetoothUSBDFU、およびcom.apple.bluetoothaudiod(を使用して実行されているデーモンを見ることができますsudo launchctl list

また試すことができます:

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

古いバージョンのOS Xを使用している場合は、よりクリーンです。

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

または

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

あなたが提案した3つのコマンドをすべて試してみましたが、どれもbluetoothを強制終了または再起動することはできませんでした。これは、各コマンドの「kill」バージョンを発行した後でも、Bluetoothマウスとキーボードを使用できたためです。他のアイデアはありますか?私は現在ヨセミテにいます。
ジープル

@zeeple:そのとおりです。@Testingが提供するすべてのコマンドは、launchd(このコマンドインターフェイスはlaunchctl)によってこのように構成されているため、強制終了されたデーモンを自動的に再起動します。
ダン

今朝、これらのコマンドはどれも、私のBluetoothを再び動作させるために機能していません。動作する唯一のことは、OSの再起動でした。
ジープル

El Capitanでは、sudo launchctl stop com.apple.bluedコマンドは実際にstartコマンドなしでデーモンを自動再起動します。古いコマンドはEl Capitanで何もしませんので、残念ながら私はそれ以上の洞察を得られません(ほんの数週間前に最後のYosemiteマシンをアップグレードしました)。
テスト

悲しいことに、私はIT部門が後方にある巨大企業で働いています。Yosemite以外へのアップグレードは許可されません。上記のコマンドはどれも私にはまったく機能しません。毎朝マシン全体を再起動することが唯一の機能です。
ジープ

7

言及すべきことの1つは、デーモン名blued(少なくともmacOS 10.11 El Capitanまで)がbluetoothdに変更されたことです。

そのため、macOSのバージョンに基づいて、以下のコマンドでデーモン名を変更する必要があります。

もう1つ注意すべき点は、El Capitanで導入されたSIP(System Integrity Protection)が原因で、デーモンのplistをアンロードしてからロード(停止してから開始またはHUP信号を送信するのではなく)できない場合があることです。ただし、SIPを無効にした場合、またはEl Capitanより前の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 stopしてからlaunchctl startデーモンを起動できます。

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

デーモンを実際に再起動するのではなく、bluetoothのステータス(on | off)を変更するだけの場合は、次を実行できます。

# 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の将来のバージョンでは動作しない可能性があります。


5

このサードパーティのコマンドラインツールは、High Sierraまでずっと機能し、OSXバージョン間の違いを抽象化しているようです:https : //github.com/toy/blueutil


10.13に私の作品blueutil off && blueutil s && blueutil onに加えて、それが醸造を介してインストールすることができますbrew install blueutil
urandomの

4
sudo pkill bluetoothd

macOS High Sierraで動作するMy Logitech mxは、スリープ後に動作しない場合があります。私が読んだのはマウスのせいではないので、macOS Smart Bluetoothのバグです。しかし、私のAppleキーボードは常に機能し、この問題は発生しません。時々コンピューターを起動しますが、Appleキーボードは動作していますが、Logitechマウスは動作していません。そのため、マウスなしではシステムからBluetoothを再起動できません(閉じることができますが、キーボードも消えるので再起動できません)ターミナルからこのコマンドを使用し始め、サービスを停止しますが、サービスが停止すると自動的に再起動します。そして、私のマウスはすぐに動作し始めます!


4

macOS High Sierra 10.13.6を搭載したMacbook Pro 2017では、次のbashスクリプトを使用してbluetoothを再起動します。

#!/bin/bash

sudo launchctl stop com.apple.bluetoothd
sudo launchctl start com.apple.bluetoothd

2

GitHub Gistでこのページを見つけて、私のために機能するコマンドを見つけました(Yosemite v。10.10.5を実行しています)。ターミナルで次のように入力するだけで、再起動せずにbluetoothデーモンを再起動できます。

sudo kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport

sudo kextload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport 


1

私はYosemite v10.10.5を実行していますが、他のコメントや要点はまったく役に立ちませんでした。bluetoothドライバーを復活させるために私が理解できた唯一のステップは次のとおりです。

  1. sudoを実行する kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransportターミナルでをします
  2. 開いているウィンドウを保存せずにコンピューターを再起動する

4
私にとっては、コンピューターを再起動するだけでうまくいきます。私が探しているのは、マシン全体を再起動せずにそれを行うコマンドラインの方法です。
ジープル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.