无法从 init.d 添加启动服务到 openWRT

无法从 init.d 添加启动服务到 openWRT

我在 TP-Link TL-WA901N/ND v3 上安装了 openWrt。我没有安装 luci 软件包,因为我没有足够的空间,所以我只能通过 cli 来做事。

我想要实现的是在启动时创建一个 mon0 接口并在其上运行 tcpdump 。我在/etc/init.d 中创建了一个文件并将其命名为monitor。监控文件包含以下内容

#!/bin/sh /etc/rc.common

#to start after /etc/init.d/network is started and stop after it stopped
START=99
STOP=1

start(){
    #tried with and without the following two lines
    include /lib/network
    scan_interfaces

    iw phy phy0 interface add mon0 type monitor
    ifconfig mon0 up
    echo "mon0 is up!"
}
stop(){
    ifconfig mon0 down
    iw mon0 del
    echo "mon0 is down!"
}

然后我运行以下命令

/etc/init.d/monitor enable

在 /etc/rc.d 中,我可以看到 S99monitor 和 K1monitor,但是当我重新启动时,我看不到执行 ifconfig 时创建的 mon0 接口。

如果我手动启动它,这会起作用

/etc/init.d/monitor start

我还尝试将上面的命令添加到 /etc/rc.local 但没有任何改变。

我究竟做错了什么?

答案1

我猜你忘了添加

boot(){
start
}

部分

相关内容