很久以前,我的带有 Lubuntu 11.10 的 Sony Vaio 在关机过程中显示红色“失败”消息。
它尝试终止某些进程,屏幕上的白色消息冻结了几秒钟(稍稍停顿),然后出现“失败”并继续关闭。
但当我安装Lubuntu时却不是这样。发生了一些事情,直到上周我才知道。
上周我发现了为什么它会暂停关闭过程一段时间。
我使用笔记本电脑前面的按钮禁用了无线适配器(即硬件关闭)。然后我注意到关闭是如此之快。没有失败消息,我的笔记本电脑大约在 5 或 6 秒后关闭。
所以我几乎可以肯定某些 wlan0 连接正在保持关闭过程。也许它正在尝试保持连接或尝试禁用连接。
如果我使用按钮禁用它,一切都会很快。
有办法解决这个问题吗?
编辑:按照@Gilles 给出的建议,现在关闭过程非常快。我使用了他的脚本和附加行rfkill block all
。
但是,正如我们在下图中看到的,脚本返回了一些not found
.
答案1
消息“杀死所有剩余进程...”来自关闭脚本/etc/init.d/sendsigs
,该脚本通过符号链接作为关闭序列的一部分执行/etc/rc0.d/S20sendsigs
。
您可以通过将自定义脚本链接到/etc/rc0.d
and /etc/rc6.d
(0
用于关闭、6
用于重新启动 — 不要询问)并为其指定小于 20 的优先级来预先执行自定义脚本。将以下脚本编写为/etc/init.d/sigur-wlan-stop
:
#!/bin/sh
## Turn off all wireless networks
for x in /sys/class/net/*; do
if [ -e "$x/wireless" ]; then
if grep -q "^$x=" /run/network/ifstate; then ifdown "${x##*/}"; fi
ifconfig "${x##*/}" down
fi
done
使脚本可执行并将其链接到关闭脚本中:
chmod 755 /etc/init.d/sigur-wlan-stop
ln -s ../init.d/sigur-wlan-stop /etc/rc0.d/S10sigur-wlan-stop
ln -s ../init.d/sigur-wlan-stop /etc/rc6.d/S10sigur-wlan-stop
答案2
如果您希望它自动关闭无线设备前关闭,我建议放置
sudo ifconfig wlan0 down
在 ~/.bash_logout 文件中,这样它将在注销期间关闭,并且您不必担心 rc 文件中的正确运行级别,从而实现快速关闭序列。
如果系统提示您输入 sudo 密码,您也可以执行以下操作
sudo nano /etc/sudoers
并添加
username ALL=(ALL) NOPASSWD: ALL
到文件末尾(其中 username 是您的用户名),这将允许您使用 sudo 而无需每次提示输入密码,从而允许您在关闭序列开始之前禁用无线连接,而无需提示密码。