Bash 在OpenWRT启动时运行脚本

Bash 在OpenWRT启动时运行脚本,bash,boot,openwrt,init.d,rc,Bash,Boot,Openwrt,Init.d,Rc,我正在运行这段代码,并且工作得很好,但是每当我在启动时启用它运行时,我的路由器就不会启动。当我执行脚本启动时正在工作,当我执行脚本启动时也在工作。但每当我启动script enable使其在启动时运行时,我就会重新启动路由器,而我的路由器永远不会启动,它会冻结,我需要进入故障保护模式才能解除它的锁定 我做错什么了吗?启动和停止变量可以吗 #!/bin/sh /etc/rc.common START=10 STOP=15 boot() { airmon-ng start wlan0

我正在运行这段代码,并且工作得很好,但是每当我在启动时启用它运行时,我的路由器就不会启动。当我执行
脚本启动时
正在工作,当我执行
脚本启动时
也在工作。但每当我启动
script enable
使其在启动时运行时,我就会重新启动路由器,而我的路由器永远不会启动,它会冻结,我需要进入故障保护模式才能解除它的锁定

我做错什么了吗?启动和停止变量可以吗

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

START=10
STOP=15

boot() {
    airmon-ng start wlan0
    sleep 1
    start
}

start() {
        rssi mon0 &
}

stop() {
    killall -9 rssi
    exit 1
}

您需要创建一个.init脚本,该脚本在所有其他脚本之后启动:

#!/bin/sh /etc/rc.common
START=99

boot() {
    /usr/sbin/airmon-ng start wlan0
    if [! -d "/var/log/rssi_data"]; then
          mkdir -p /var/log/rssi_data
    fi

start() {
    service_start /usr/sbin/airodump-ng wlan0
    }

stop() {
    service_stop /usr/sbin/airodump-ng
    }

使用airodump,您可以读取(并保存到/var/log/rssi_数据)rssi值。更多信息:

这是你的完整脚本吗?@Cyrus是的,刚刚开始rssicode@Cyrus我会试试,你的意思是在bash脚本的末尾添加
“$1”
,对吗?
stop()
Yes的
}
后面有一个新行。如果系统以样式启动,则脚本将以
/etc/init.d/your_script start
启动。您没有启动这些功能(启动、停止)的机制。通常,这是通过
case
命令完成的。这个
“$1”
是一个简单的版本。我发现。这个问题一定有不同的原因。