OpenWrt设置开机自动启动/延迟启动

最近在搞路由器自动登录,用到了OpenWrt的自动启动。因为我要运行的是一个Python程序,一条命令足够,就直接在/etc/rc.local里面改了。

python /etc/Myprogram.py

直接占用前台了。既需要让他后台运行,又不想安装nohub。所以:

( python /etc/Myprogram.py >/dev/null 2>&1 )&

用Python运行Myprogram.py,并把输出重定向到/dev/null(即丢弃)。最后的 “&” 让程序后台运行。

rc.local在系统每次启动时由/etc/rc.d/S95done 调用,是一个shell 脚本,是在系统开机之后最后会调用到的脚本。也就是说,在OpenWrt系统下,有可能网卡还没初始化完成,这里的代码就已经运行完成了。在特定情况下需要延迟启动的时候,可以让他等一下再执行。

sleep 10 && ( python /etc/Myprogram.py >/dev/null 2>&1 )&

补充我看到的一个用法:

((python /etc/Myprogram.py)&)&

为什么套了两层我不知道,但他确实也能用。


另一种方法:

  1. 在/etc/init.d/中按照以下格式编写Shell脚本,假设命名为Myshell
#!/bin/sh /etc/rc.common
START=99		#这里是启动优先级
STOP=15			#这里是停止优先级

start(){
   #要运行的代码
}

stop(){
    #要运行的代码
}

restart(){
    #要运行的代码
}

enable(){
    #要运行的代码
}

disable(){
    #要运行的代码,后三个可以不写但不建议留空
}
  1. 赋予运行权限

(1) 使用chmod命令将脚本变为可执行脚本。我一般给755(rwxr-xr-x)。

chmod 755 Myshell

(2) 使用 “Myshell enable” 使得脚本开机自启动。其中,Myshell为前面编写的脚本文件名。这里需要输入完整路径。

/etc/rc.d/Myshell enable

“Myshell enable” 命令实质上是为脚本文件创建一个软链接,软链接存放于/etc/rc.d/下。所以如果不想使用enable命令,可以自己创建软链接。

  1. 自启动设置完成啦,测试一下吧!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值