【问题标题】:Running a script when OpenWRT boots在 OpenWRT 启动时运行脚本
【发布时间】:2016-07-16 05:05:39
【问题描述】:

我正在运行此代码并且运行良好,但是每当我启用它以在启动时运行时,我的路由器将无法启动。当我做script start 工作时,当我做script boot 也在工作。但是每当我使用script enable 让它在启动时运行时,我都会重新启动我的路由器,但我的路由器永远不会启动,它会死机,我需要进入故障安全模式才能解开它。

我做错了吗? START 和 STOP 变量可以吗?

#!/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
}

【问题讨论】:

  • 这是你的完整脚本吗?
  • @Cyrus 是,刚刚开始那个 rssi 代码
  • @Cyrus 我会试试看,你的意思是在 bash 脚本的最后添加 "$1",对吗? stop()} 之后的新行
  • 是的。如果您的系统以System V 样式启动,则您的脚本以/etc/init.d/your_script start 启动。您没有启动这些功能(启动、停止)的机制。通常这是通过case 命令完成的。这个"$1"是一个简单的版本。
  • 我找到了wiki.openwrt.org/doc/techref/initscripts。问题一定有不同的原因。

标签: bash boot openwrt init.d rc


【解决方案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_data)rssi 值。更多信息在这里:Click

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-26
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 2018-08-29
    • 2013-02-16
    • 1970-01-01
    相关资源
    最近更新 更多