解决Parrot系统bluetooth.service启动失败问题并启用蓝牙
解决Parrot系统蓝牙服务启动失败问题
问题描述
执行蓝牙服务相关命令(sudo systemctl restart bluetooth.service等)时均失败,错误提示:
$ sudo systemctl restart bluetooth.service [sudo] password for kartik: Job for bluetooth.service failed because the control process exited with error code. See "systemctl status bluetooth.service" and "journalctl -xeu bluetooth.service" for details.
查看服务状态得到核心错误:
$ systemctl status bluetooth.service × bluetooth.service - Bluetooth service Loaded: loaded (/etc/systemd/system/bluetooth.service; enabled; preset: enabled) Active: failed (Result: exit-code) since Sun 2023-05-07 21:14:33 IST; 4min 19s ago Docs: man:bluetoothd(8) Process: 6824 ExecStart=/usr/lib/bluetooth/bluetoothd -E (code=exited, status=203/EXEC) Main PID: 6824 (code=exited, status=203/EXEC) CPU: 930us May 07 21:14:33 parrot systemd[1]: bluetooth.service: Failed with result 'exit-code'.
日志显示服务进入失败状态,启动任务执行失败。
解决方案
状态码203/EXEC代表systemd无法执行指定的二进制文件,按以下步骤逐一排查修复:
1. 检查蓝牙程序文件是否存在
执行命令确认bluetoothd路径有效性:
ls -l /usr/lib/bluetooth/bluetoothd
- 若输出提示
No such file or directory,说明蓝牙程序包损坏,执行重装:sudo apt update && sudo apt reinstall bluetooth
2. 验证程序文件的执行权限
如果文件存在,检查权限位是否包含执行权限(x):
- 正常权限格式类似
-rwxr-xr-x,若缺少执行权限,添加权限:sudo chmod +x /usr/lib/bluetooth/bluetoothd
3. 排查AppArmor限制
Parrot系统默认启用AppArmor,可能限制了蓝牙程序的执行:
- 临时关闭AppArmor测试:
sudo systemctl stop apparmor sudo systemctl start bluetooth - 若服务能启动,需调整AppArmor规则,可将蓝牙程序加入例外或修改
/etc/apparmor.d/目录下的对应配置文件。
4. 重置蓝牙配置文件
配置文件损坏也可能导致启动失败,先备份再重置:
sudo cp /etc/bluetooth/main.conf /etc/bluetooth/main.conf.bak sudo apt reinstall bluetooth
重装会恢复默认配置,之后尝试启动服务。
5. 检查蓝牙硬件是否被屏蔽
执行命令查看蓝牙状态:
rfkill list
- 若输出中蓝牙显示
Soft blocked: yes,执行解除屏蔽:sudo rfkill unblock bluetooth
完成以上步骤后,重新尝试启动蓝牙服务:
sudo systemctl start bluetooth.service
内容的提问来源于stack exchange,提问作者KARTIK GOEL
相关产品推荐
相关产品推荐

