Ubuntu 22.04重启/关机失败:NetworkManager与wpa_supplicant无法停止
Ubuntu 22.04重启/关机失败:NetworkManager与wpa_supplicant无法停止
看起来你遇到的是Ubuntu 22.04里NetworkManager和wpa_supplicant进程在关机或重启时卡住的典型问题,我之前帮朋友排查过类似情况,给你几个可行的解决思路,你可以逐一尝试:
排查异常进程与日志
首先先确认是否有异常的进程实例或者日志里的错误信息:- 查看当前运行的wpa_supplicant进程:
ps aux | grep wpa_supplicant,如果发现多余的非系统默认进程,先用sudo kill -9 <进程ID>手动终止,再尝试关机测试。 - 查看上一次启动的NetworkManager日志,定位挂起原因:
journalctl -u NetworkManager -b -1,日志里通常会提示是某个网络设备未释放,还是服务本身的依赖问题。
- 查看当前运行的wpa_supplicant进程:
调整systemd服务的停止规则
有时候是systemd的服务停止顺序或超时设置导致进程无法正常退出,我们可以强制修改服务的停止行为:- 编辑NetworkManager的服务配置:
sudo systemctl edit NetworkManager.service - 在打开的临时文件中添加以下内容:
[Service] ExecStop=/usr/bin/killall -TERM NetworkManager ExecStopPost=/usr/bin/killall -9 NetworkManager TimeoutStopSec=5 - 同样处理wpa_supplicant:
sudo systemctl edit wpa_supplicant.service,添加相同格式的配置:[Service] ExecStop=/usr/bin/killall -TERM wpa_supplicant ExecStopPost=/usr/bin/killall -9 wpa_supplicant TimeoutStopSec=5 - 保存退出后,重新加载systemd配置:
sudo systemctl daemon-reload,然后测试关机。
- 编辑NetworkManager的服务配置:
检查内核与驱动兼容性
你使用的5.19.0-32-generic内核版本可能存在部分无线网卡驱动的兼容性问题,导致进程无法释放硬件资源:- 尝试升级到最新的稳定内核:
sudo apt update && sudo apt upgrade linux-generic,升级完成后重启系统,再测试关机流程。 - 如果你的无线网卡是Realtek等第三方品牌,可以检查是否有对应的DKMS驱动包需要更新,比如通过
apt安装官方维护的驱动版本。
- 尝试升级到最新的稳定内核:
临时应急脚本方案
如果上面的方法暂时无法解决,可以先设置一个关机前的自动脚本,提前终止这两个服务:- 创建脚本文件:
sudo nano /usr/local/bin/pre-shutdown.sh - 写入以下内容:
#!/bin/bash sudo systemctl stop NetworkManager sudo systemctl stop wpa_supplicant sleep 2 - 给脚本添加执行权限:
sudo chmod +x /usr/local/bin/pre-shutdown.sh - 创建对应的systemd服务:
sudo nano /etc/systemd/system/pre-shutdown.service - 写入服务配置:
[Unit] Description=Pre Shutdown Script DefaultDependencies=no Before=shutdown.target reboot.target halt.target [Service] Type=oneshot ExecStart=/usr/local/bin/pre-shutdown.sh [Install] WantedBy=shutdown.target reboot.target halt.target - 启用服务:
sudo systemctl enable pre-shutdown.service
- 创建脚本文件:
备注:内容来源于stack exchange,提问作者Olivier
相关产品推荐
相关产品推荐

