【问题标题】:how to autorun a shell script after boot - OpenWRT如何在启动后自动运行 shell 脚本 - OpenWRT
【发布时间】:2021-10-26 04:58:50
【问题描述】:

我刚对 OpenWRT 感兴趣,想尝试一下。

我正试图在我的 OpenWRT 启动后立即运行一个脚本。 这是我的脚本文件

customchain.sh

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

START=99

start(){
[my custom chains]
}

我已将此脚本文件放在/etc/init.d

我想知道为什么这不起作用。 如果我查看/etc/rc.d,我可以看到S99customchain.sh -> ../init.d/customchain.sh

当我在根目录手动重启脚本文件时 /etc/init.d/customchain.sh 当我通过iptables -L 进行检查时,我可以看到它非常适用

但正如我所说,当我(重新)启动我的 OpenWRT 系统时,这不会自动启动。

已通过使用+x 授予权限

我已经尝试过使用/etc/init.d/customchain enable,但仍然无法使用。

我也已经在这里检查过类似的问题,但没有任何答案。

我该怎么办?

【问题讨论】:

    标签: openwrt init.d


    【解决方案1】:

    第一种方法:/etc/rc.local添加命令

    vi /etc/rc.local
    

    rc.local 内部:

    # Description of the script
    #!/bin/sh
    /path/to/my/script.sh || exit 1   # comments
    exit 0
    

    第二种方法:编辑你的 crontab

    crontab -e    
    

    添加这一行:

    @reboot /path/to/script.sh   
    

    脚本将在计算机启动时运行。

    【讨论】:

    • 所以你的意思是我应该同时做第一种和第二种方法?
    • 无论如何,就我而言,由于我使用 SDK 进行构建,因此不能选择第二种方法。我已经尝试了第一种方法,但仍然不起作用即使我在 OpenWRT 尝试第二种方法,它也不起作用。
    • 执行sudo chmod a+x /etc/rc.local,只是为了确保它是可执行的。
    • 还是一样。我在 SDK 和 OpenWRT 系统都这样做了
    • 您应该使用其中一种方法,而不是同时使用两种方法。但首先,尝试在不自动运行的情况下手动运行您的测试脚本,以确保它确实有效(并使其可执行)。
    猜你喜欢
    • 2016-07-16
    • 2016-06-08
    • 2018-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-21
    相关资源
    最近更新 更多