如何在关机时禁用wlan0

如何在关机时禁用wlan0

很久以前,我的带有 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.dand /etc/rc6.d0用于关闭、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 而无需每次提示输入密码,从而允许您在关闭序列开始之前禁用无线连接,而无需提示密码。

相关内容