Як перезапустити послугу Bluetooth з командного рядка


28

У Linux, якщо хочеться перезапустити послугу Bluetooth, вони просто запускають термінал і видають таку команду:

sudo /etc/init.d/bluetooth restart

Що таке еквівалент Mac OS X? Я хотів би перезапустити Bluetooth без необхідності перезавантаження всього комп’ютера.

Я використовую Yosemite.

Оновлення: З різних варіантів командного рядка, наданих Тестуванням нижче, єдиний, який, здавалося, працює, був останнім, а саме це:

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

Оновлення 2: Наведена вище команда більше не працює, і мені цікаво, чи коли-небудь це було. Перший раз, коли я спробував це, можливо, це було щось інше, що перезапустило мої послуги Bluetooth. Єдине, що для мене буде працювати - це перезавантаження всієї машини щоранку.


Яка версія OS X? Здається, це може мати значення в цьому випадку.
tim.rohrer

Якщо встановлення іншого додатка - це варіант, ви можете перевірити цей історію
tim.rohrer

Відмінне запитання. Все-таки вкладаємо справу. Я думаю, що є чистий шлях Mavericksі на Yosemite.
дан

Я видалив com.apple.Bluetooth.plist з / Бібліотека / Налаштування / SystemConfiguration / або / Бібліотека / Налаштування / і перезапустив> виправлено. Команди терміналу нижче для мене не працювали - але, звичайно, ви можете зробити команду термінала, яка видалить цей файл, а потім перезапустить ваш mac :)
Thieme Hennis

Відповіді:


26

У High Sierra жоден із параметрів командного рядка не працював для мене. Мені вдалося підключити дротову USB-мишку та використати опцію Shift + Option за допомогою рішення налагодження / відпочинку.

Я спробував рішення Blueutil на своїй Високій Сьєррі, і це спрацювало як шарм. У мене регулярно є Bluetooth на моєму МБПР 2015 року зі шлангом Apple Magic Mouse, і мені потрібно перезапустити. Так, я міг би відкрити кришку і скористатися доріжкою для доріжок, але це з іншого боку стіни від місця мого робочого столу.

Ви можете встановити blueutil за допомогою Homebrew:

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
Alter Lagos

17

На Ель-Капітан це дуже складно, оскільки це не дозволяє вам розвантажувати системні послуги. Однак методом грубої сили є:
sudo pkill blued
"blued" - це демон Bluetooth Bluetooth OS X, і він автоматично перезапуститься після припинення (принаймні, коли я тестував його на моїй машині 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

Я спробував усі три запропоновані вами команди, і жодна з них не вб'є та / або перезапустить Bluetooth. Я говорю це тому, що мені все-таки вдалося скористатися Bluetooth-мишкою та клавіатурою після видачі версії 'kill' кожної команди. Будь-які інші ідеї? На даний момент я на Йосеміті.
zeeple

@zeeple: ти маєш рацію. Вся команда, надана @Testing, призведе до автоматичного перезавантаження вбитих демонів, оскільки вони налаштовані таким чином launchd(який інтерфейс команди launchctl).
дан

Сьогодні вранці жодна з цих команд не працює, щоб знов працювати мій Bluetooth. Єдине, що спрацювало б - це перезавантаження ОС.
zeeple

На El Capitan sudo launchctl stop com.apple.bluedкоманда дійсно автоматично перезапускає демон без команди start. Старіші команди нічого не роблять на Ель-Капітані, тому, на жаль, я не маю набагато більше розуміння (я модернізував свою останню машину Yosemite всього пару тижнів тому).
Тестування

На жаль, я працюю в гігантській компанії з відсталим відділом ІТ. Вони не дозволять модернізувати щось, що перебуває за межами Yosemite. Жодна з наведених вище команд для мене взагалі не працює. Перезапуск всієї машини щоранку - це єдине, що буде працювати.
zeeple

7

Варто згадати одне ім'я демона blued (принаймні до macOS 10.11 El Capitan), яке було змінено на bluetooth .

Отже, виходячи з версії macOS, вам потрібно змінити ім'я демона в наведених нижче командах.

Ще одне, що слід зазначити, це те, що розвантажити потім завантажувати ліст демона (замість зупинки та запуску чи надсилання сигналу HUP) може не спрацювати завдяки SIP (захист цілісності системи), запроваджений в El Capitan. Але це повинно працювати, коли ви відключили SIP або на macOS перед El Capitan.

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

Навіть у середовищі SIP (після El Capitan) ви можете просто запускатиctl stop, а тоді startctl запускати демон.

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

Якщо ви просто хочете змінити статус (увімкнено) Bluetooth, не бажаючи, щоб демон фактично перезапускався, ви можете зробити наступне,

# 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 - це класний матеріал, але він використовує деякі приватні API IOBluetooth.framework, тому він може не працювати в майбутній версії 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 ніде не працює після сну іноді. Оскільки я читав його не через мишу, це помилка Smart macOS Bluetooth. Але моя клавіатура Apple завжди працює, ніколи цього питання не виникало. Іноді я прокидаюся за комп’ютером, клавіатура Apple працює, але миша Logitech не працює. Тож без миші я не можу перезапустити Bluetooth із системи (я міг би закритись, але клавіатура також відійшла, тому не можу знову перезапустити). Я почав використовувати цю команду з терміналу, вона припиняє службу, але коли служба зупиняється, вона автоматично перезапускається самостійно . І моя миша починає працювати протягом секунди!


4

Для мого Macbook Pro 2017 з macOS High Sierra 10.13.6 я перезапускаю Bluetooth, використовуючи наступний сценарій bash:

#!/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. Виконайте судо kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransportв терміналі
  2. Перезавантажте комп'ютер без збереження відкритих вікон

4
Для мене просто перезавантаження комп'ютера робить трюк. Що я шукаю, це спосіб командного рядка зробити це без необхідності перезапускати всю машину.
zeeple
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.