我正在尝试为 Debian 上的 hostapd 编写一个单元文件。
hostapd 守护进程似乎需要相关 Wifi 接口的接口在运行之前启动,否则它是 SEGV 的。
我试过 network-online.target,但仍然得到 SEGV。我认为这是因为 network-online.target 只需要看到 ANY 接口,其他接口在 Wifi 接口准备好让 hostapd 工作之前出现。
让服务在启动之前等待特定接口启动的最佳方法是什么?
int*_*lfx 18
从systemd 219开始,可以systemd-networkd-wait-online
直接使用systemd的工具,通过--interface
参数指定要等待的接口。例如:
ExecStartPre=/usr/lib/systemd/systemd-networkd-wait-online --interface=$IFACE
Run Code Online (Sandbox Code Playgroud)
但是,有一个警告。这个工具需要systemd-networkd
运行,即使它在你的配置中什么都不做。另一方面,从相同的 systemd 219 开始,systemd-networkd
可通过套接字激活并在空闲时自动退出。所以你需要做的就是拉入它的插座。
总而言之,对单元文件的修改将如下所示($IFACE
替换为您想要的界面):
[Unit]
Requires=systemd-networkd.socket
After=systemd-networkd.socket
...
[Service]
ExecStartPre=/usr/lib/systemd/systemd-networkd-wait-online --interface=$IFACE
ExecStart=/usr/bin/hostapd ...
...
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10193 次 |
最近记录: |