我想wpa_supplicant -D wext -i wlan0 -c /etc/wpa_supplicant.conf
在 Debian 启动时运行(运行级别 2-5)。我从一个相关问题中找到了一些模糊的说明,其中说要放入一个脚本/etc/init.d/
,然后从适当的/etc/rcRUNLEVEL.d/
目录中符号链接到它。但是,我注意到已经有一些名为“wpasupplicant”的文件可能在启动时运行:
/etc/network/if-down.d/wpasupplicant
/etc/network/if-post-down.d/wpasupplicant
/etc/network/if-pre-up.d/wpasupplicant
/etc/network/if-up.d/wpasupplicant
它们都是指向同一脚本的符号链接/etc/wpa_supplicant/ifupdown.sh
。它在开头有一个注释,说明它“[...] 允许 ifup(8) 和 ifdown(8) 管理以守护进程模式运行的 wpa_supplicant(8) 和 wpa_cli(8) 进程。”但是,它最接近调用wpa_supplicant
自身的是(在 functions.sh 中):
WPA_SUP_BIN="/sbin/wpa_supplicant"
[snip]
start-stop-daemon --start --oknodo $DAEMON_VERBOSITY \
--name $WPA_SUP_PNAME --startas $WPA_SUP_BIN --pidfile $WPA_SUP_PIDFILE \
-- $WPA_SUP_OPTIONS $WPA_SUP_CONF
[snip]
start-stop-daemon --stop --oknodo $DAEMON_VERBOSITY \
--exec $WPA_SUP_BIN --pidfile $WPA_SUP_PIDFILE
这是否意味着为其制作 init.d 脚本是安全的wpa_supplicant
,如果是的话它会是什么样子?
基本信息:
- Debian Squeeze(5.0)
- 官方 wpasupplicant 软件包 (v0.6.10-2.1)
我的系统的全部内容functions.sh
在ifupdown.sh
这里(当然,取决于我的系统的正常运行时间 - 这是一台五年前的笔记本电脑,非常喜欢过热):
答案1
如果您的目标是在启动时配置无线接口(而不是wpa_supplicant
出于其他原因将命令放在脚本中),则可以使用/etc/network/interfaces
并生成普通配置文件wpa_passphrase
来实现此结果。
在/etc/network/interfaces
(假设wlan0
是您的无线接口并且配置来自wpa_passphrase
)/root/your-wpa.conf
:
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /root/your-wpa.conf
在我的系统中,“wpa-conf”行的开头有一个制表符(不是空格)。在输入此响应时,无法输入用于网络的制表符。不确定这是否重要。
我不需要编辑或对 WPA conf 文件做任何事情。这是我从命令中得到的
wpa_passphrase myssid mysecret >wpa.conf
看如何使用 WiFi 接口在 Debian.org 和/usr/share/doc/wpasupplicant/README.wpa_supplicant.conf.gz
本地。
我在 Jessie 上测试了这一点,并且不再有任何 Squeeze 系统剩余 - 但我想自从提出这个问题以来的 4 年内你已经升级了。
答案2
编辑 wpa_supplicant.conf 文件并将其添加到 /etc/network/interfaces