Skip to content

Instantly share code, notes, and snippets.

@nicolasembleton
Last active October 21, 2022 20:10
Star You must be signed in to star a gist
Save nicolasembleton/afc19940da26716f8e90 to your computer and use it in GitHub Desktop.
Restart Bluetooth Daemon on Mac OS X without restarting
#!/bin/bash
sudo kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport
sudo kextload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport
@rogerluan
Copy link

Latest update from me, who initially wrote this: https://gist.github.com/nicolasembleton/afc19940da26716f8e90#gistcomment-3422499

I've been running macOS 11.2 since Feb 8th and since then the bluetooth problems decreased from like "a few times a day" to "maybe once a week" or even less often than that.

@opsforce
Copy link

opsforce commented Jul 9, 2021

just $ sudo pkill bluetoothd
then daemon bluetooth service will restart self (tested success on macOS 10.14+).

@paulbargaoanu
Copy link

#!/usr/bin/env bash

pgrep audio | xargs sudo kill
pgrep bluetooth | xargs sudo kill

sudo launchctl list | grep -i blue | awk '{ print $3 }' | xargs sudo launchctl stop
sudo launchctl list | grep -i blue | awk '{ print $3 }' | xargs sudo launchctl start
sudo launchctl list | grep -i audio | awk '{ print $3 }' | xargs sudo launchctl stop
sudo launchctl list | grep -i audio | awk '{ print $3 }' | xargs sudo launchctl start

I use this script and fixed my problem :D

Seems to be working on a Mac Mini 2018 running Mac OS Big Sur 11.5.2 (20G95)

Thank you very much, kind stranger! 🙏

@agate
Copy link

agate commented Aug 27, 2021

@paulbargaoanu you are welcome. I am glad it works :D

@dobando-dev
Copy link

#!/usr/bin/env bash

pgrep audio | xargs sudo kill
pgrep bluetooth | xargs sudo kill

sudo launchctl list | grep -i blue | awk '{ print $3 }' | xargs sudo launchctl stop
sudo launchctl list | grep -i blue | awk '{ print $3 }' | xargs sudo launchctl start
sudo launchctl list | grep -i audio | awk '{ print $3 }' | xargs sudo launchctl stop
sudo launchctl list | grep -i audio | awk '{ print $3 }' | xargs sudo launchctl start

I use this script and fixed my problem :D

Works for BigSur. Thanks!

@AnaatGitHub
Copy link

#!/usr/bin/env bash

pgrep audio | xargs sudo kill
pgrep bluetooth | xargs sudo kill

sudo launchctl list | grep -i blue | awk '{ print $3 }' | xargs sudo launchctl stop
sudo launchctl list | grep -i blue | awk '{ print $3 }' | xargs sudo launchctl start
sudo launchctl list | grep -i audio | awk '{ print $3 }' | xargs sudo launchctl stop
sudo launchctl list | grep -i audio | awk '{ print $3 }' | xargs sudo launchctl start

After months of searching and trying stuff, this seems to work on Catalina OS (10.15.7) on a MacBook Pro 8,1. As soon as I ran the script, the bluetooth started working again. No rebooting or resetting the SMC module needed so far. The bluetooth conection will still drop out after a while, but the script is definitely more convenient than the rebooting every 30 minutes like previously.

Thanks a bunch, @agate ! Do you have any idea as to why this works and if there is a more permanent fix?

Cheers.

@agate
Copy link

agate commented Feb 8, 2022

@AnaatGitHub so I just violently killed all the Bluetooth and Audio related processes. I guess MacOS is smart enough to restart all those background processes if you are trying to use them later. You know "reboot fixes almost 99 percent problem" lol.

BTW, I am not sure if there is any other way / app for doing such thing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment