วิธีการเริ่มบริการ Bluetooth ใหม่จากบรรทัดคำสั่ง


28

บน Linux หากต้องการเริ่มบริการบลูทู ธ ใหม่พวกเขาเพียงเรียกใช้เทอร์มินัลแล้วออกคำสั่งต่อไปนี้:

sudo /etc/init.d/bluetooth restart

อะไรคือสิ่งที่เทียบเท่ากับ Mac OS X ฉันต้องการรีสตาร์ทบลูทู ธ โดยไม่ต้องรีสตาร์ทคอมพิวเตอร์ทั้งหมด

Yosemiteฉันใช้

อัปเดต: จากตัวเลือกบรรทัดคำสั่งต่าง ๆ ที่ได้รับจากการทดสอบด้านล่างตัวเลือกเดียวที่ดูเหมือนว่าใช้งานได้คือตัวสุดท้ายซึ่งก็คือ:

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

อัปเดต 2: คำสั่งดังกล่าวไม่ทำงานอีกต่อไปและฉันสงสัยว่ามันเคยทำ ครั้งแรกที่ฉันลองมันอาจจะเป็นอย่างอื่นที่เริ่มบริการบลูทู ธ ของฉันใหม่ สิ่งเดียวที่จะช่วยฉันได้คือการรีสตาร์ทเครื่องทั้งหมดทุกเช้า


OS X รุ่นใด ปรากฏว่าอาจมีความสำคัญในกรณีนี้
tim.rohrer

หากติดตั้งแอปอื่นเป็นตัวเลือกคุณอาจลองดูสรุปสาระ
tim.rohrer

คำถามที่ยอดเยี่ยม ยังคงลงทุนจุด ผมคิดว่ามีวิธีทำความสะอาดบนและMavericks Yosemite
แดน

ฉันลบ com.apple.Bluetooth.plist จาก / Library / Preferences / SystemConfiguration / หรือ / Library / Preferences / และรีสตาร์ท> คงที่ คำสั่งขั้วด้านล่างไม่ได้ทำงานสำหรับฉัน - แต่แน่นอนคุณสามารถทำให้คำสั่งมินัลที่เอาไฟล์นี้แล้วรีสตาร์ทเครื่อง Mac ของคุณ :)
Thieme Hennis

คำตอบ:


26

ใน High Sierra ไม่มีตัวเลือกบรรทัดคำสั่งใดที่เหมาะกับฉัน ฉันสามารถเสียบเมาส์ USB ผ่านสายและใช้ Shift + Option กับโซลูชัน Debug / Rest

ฉันลองใช้วิธี blueutil บน High Sierra ของฉันแล้วมันก็ใช้งานได้อย่างมีเสน่ห์ ฉันมีบลูทู ธ เป็นประจำในปี 2558 MBPR ของฉันพร้อมกับ 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 ที่ประกาศไว้ด้านบน ขอบคุณสำหรับสิ่งนั้น!
Chris Sia

3
ในที่สุดสิ่งที่ใช้งานได้ !!!
Mirko

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
เพียงแค่ชี้ให้เห็นว่าคุณสามารถติดตั้งสิ่งนี้กับ homebrew:brew install blueutil
Alter Lagos

17

ใน El Capitan มันค่อนข้างยุ่งยากเพราะไม่อนุญาตให้คุณยกเลิกการโหลดบริการระบบ อย่างไรก็ตามวิธีการเดรัจฉานบังคับคือ:
sudo pkill blued
'blued' เป็นภูตบลูทู ธ OS X และมันจะรีสตาร์ทโดยอัตโนมัติเมื่อยกเลิก (อย่างน้อยเมื่อฉันทดสอบบนเครื่อง El Capitan ของฉัน) daemons อื่น ๆ ที่เกี่ยวข้องคือ: com.apple.bluetoothReporter, com.apple.IOBluetoothUSBDFU และ com.apple.bluetoothaudiod (คุณสามารถดูที่ daemons ที่กำลังใช้งานอยู่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

ฉันลองทั้งสามคำสั่งที่คุณแนะนำและไม่มีคำสั่งใดที่จะฆ่าและ / หรือรีสตาร์ทบลูทู ธ ฉันพูดแบบนี้เพราะฉันยังคงสามารถใช้เมาส์และคีย์บอร์ดบลูทู ธ หลังจากออกคำสั่งแต่ละเวอร์ชัน 'ฆ่า' ความคิดอื่น ๆ ? ตอนนี้ฉันอยู่กับโยเซมิตี
zeeple

@zeeple: ถูกต้อง คำสั่งทั้งหมดที่มีให้โดย @Testing จะทำให้การรีสตาร์ท daemons ที่ถูกฆ่าโดยอัตโนมัติเนื่องจากถูกกำหนดค่าด้วยวิธีนี้โดยlaunchd(ส่วนต่อประสานคำสั่งใดlaunchctl)
แดน

เช้านี้ไม่มีคำสั่งใดที่ทำงานเพื่อให้บลูทู ธ ของฉันทำงานได้อีกครั้ง สิ่งเดียวที่จะใช้ได้คือรีบูตระบบปฏิบัติการ
zeeple

บน El Capitan sudo launchctl stop com.apple.bluedคำสั่งจะรีสตาร์ท daemon โดยอัตโนมัติโดยไม่มีคำสั่ง start คำสั่งเก่าไม่ได้ทำอะไรเลยใน El Capitan แต่น่าเสียดายที่ฉันไม่มีความเข้าใจที่ลึกซึ้งมากขึ้น (ฉันอัพเกรดเครื่องโยเซมิตีครั้งล่าสุดเมื่อไม่กี่สัปดาห์ที่ผ่านมา)
ทดสอบ

น่าเศร้าที่ฉันทำงานให้กับ บริษัท ยักษ์ใหญ่ที่มีแผนกไอทีถอยหลัง พวกเขาจะไม่อนุญาตให้อัปเกรดเป็นสิ่งอื่นนอกเหนือจากโยเซมิตี คำสั่งข้างต้นไม่เหมาะกับฉันเลย การเริ่มต้นเครื่องใหม่ทุกเช้าเป็นสิ่งเดียวที่ทำงานได้
zeeple

7

สิ่งหนึ่งที่ต้องกล่าวถึงคือชื่อภูตblued (อย่างน้อยก็จนกว่า MacOS 10.11 El Capitan) ได้ถูกเปลี่ยนไปbluetoothd

ดังนั้นตามเวอร์ชั่นของ macOS คุณต้องเปลี่ยนชื่อ daemon ในคำสั่งด้านล่าง

สิ่งที่ควรทราบอีกประการคือให้ยกเลิกการโหลดจากนั้นโหลด plist ของ daemon (แทนที่จะหยุดแล้วเริ่มหรือส่งสัญญาณ HUP) อาจไม่ทำงานเนื่องจาก SIP (System Integrity Protection) ที่แนะนำใน 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) คุณก็สามารถเรียกใช้startctl stopจากนั้นlaunchctl จะเริ่ม daemon

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

ในกรณีที่คุณต้องการเปลี่ยนสถานะ (เปิด | ปิด) ของบลูทู ธ ไม่ต้องการให้ daemon รีสตาร์ทจริงคุณสามารถทำสิ่งต่อไปนี้

# 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รวมทั้งสามารถติดตั้งผ่านทาง Brewbrew install blueutil
urandom

4
sudo pkill bluetoothd

ใช้งานได้กับ macOS High Sierra My Logitech mx ทุกที่ไม่ทำงานหลังจากนอนหลับ เมื่อฉันอ่านมันไม่ใช่เพราะเมาส์มันเป็นข้อบกพร่องของ macOS Smart Bluetooth แต่คีย์บอร์ด Apple ของฉันใช้งานได้เสมอไม่เคยมีปัญหานี้ บางครั้งฉันปลุกคอมพิวเตอร์แป้นพิมพ์ Apple ทำงาน แต่เมาส์ Logitech ไม่ทำงาน ดังนั้นโดยไม่ใช้เมาส์ฉันไม่สามารถรีสตาร์ทบลูทู ธ จากระบบได้ (ฉันสามารถปิดได้ แต่คีย์บอร์ดของฉันก็หายไปดังนั้นจึงไม่สามารถรีสตาร์ทได้อีกครั้ง) ฉันเริ่มใช้คำสั่งนี้จากเทอร์มินัลมันหยุดบริการ แต่เมื่อบริการหยุด . และเมาส์ของฉันเริ่มทำงานภายในไม่กี่วินาที!


4

สำหรับ Macbook Pro 2017 ที่มี macOS High Sierra 10.13.6 ฉันรีสตาร์ทบลูทู ธ โดยใช้สคริปต์ทุบตีต่อไปนี้:

#!/bin/bash

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

2

พบหน้านี้ใน GitHub สรุปสาระสำคัญด้วยคำสั่งที่ใช้งานได้สำหรับฉัน (ฉันใช้ Yosemite v. 10.10.5) คุณสามารถพิมพ์ต่อไปนี้ในเทอร์มินัลเพื่อรีสตาร์ทบลูทู ธ ภูตโดยไม่ต้องรีสตาร์ท:

sudo kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport

sudo kextload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport 


1

ฉันใช้งาน Yosemite v10.10.5 และไม่มีความคิดเห็นอื่นใดสำหรับฉันเลย ขั้นตอนเดียวที่ฉันจัดการเพื่อให้กลับมามีชีวิตอีกครั้งไดรเวอร์บลูทู ธ คือ:

  1. ดำเนินการ sudo kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransportในเทอร์มินัล
  2. รีสตาร์ทคอมพิวเตอร์โดยไม่สงวนหน้าต่างที่เปิดอยู่

4
สำหรับฉันเพียงแค่รีสตาร์ทคอมพิวเตอร์ทำเคล็ดลับ สิ่งที่ฉันกำลังมองหาคือบรรทัดคำสั่งในการดำเนินการโดยไม่ต้องรีสตาร์ทเครื่องทั้งหมด
zeeple
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.