找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 1213|回复: 20

求助大佬,自己编译的openwrt的rc.local添加启动命令不执行(已解决)

[复制链接]
本帖最后由 dondongc 于 2023-11-1 20:02 编辑

自己编译的openwrt23.5.0 ,在启动项(/etc/rc.local)里面添加挂载硬盘命令后系统启动时不执行,于是看了下/etc/rc.d/下面的文件,发现没有与/etc/rc.local软连接关联的/etc/rc.d/rc.local文件,请问怎么办才能使rc.local添加启动命令生效?/etc/rc.d下面文件如下:

我的恩山、我的无线 The best wifi forum is right here.
 楼主| | 显示全部楼层
顶i下啊
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

  1. chmod +x /etc/rc.local
复制代码

试一下

点评

加了权限后,运行/etc/rc.local start可以执行,但总不能每次启动都手动执行吧  详情 回复 发表于 2023-10-31 21:42
试过了,不是权限问题  详情 回复 发表于 2023-10-31 21:38
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层

试过了,不是权限问题
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层

加了权限后,运行/etc/rc.local start可以执行,但总不能每次启动都手动执行吧
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
自己顶上去
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
自己顶上去
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

rc.local开机时自动执行一次,至于你里面的命令,也许已经执行,但因为执行时机不对,所以好像没执行(挂载磁盘),你可以测试下,例如再加一条命令 echo "asd" > /tmp/test.log 开机后观察是否有这个log文件产生

点评

大佬你说的对,可能是时机不对,有/tmp/etst.log,但是怎么解决呢  详情 回复 发表于 2023-11-1 18:55
晚上回去试一下  发表于 2023-11-1 15:36
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

楼上说的对,先得看下rc.local是不是正确执行了。
不过挂载磁盘的操作为何要放到rc.local里,不是写到fstab里吗

点评

fstab也试过,好像也不行,也可能是格式错了,想用rc.local主要是觉着拓展性强,以后开机自动运行其他命令也可以用  发表于 2023-11-1 15:38
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

openwrt可以安装automount,或者在编译时选上。

点评

实在不行就试一下这个,直接软件包里安装可以不?  发表于 2023-11-1 15:39
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

自启动,为了更好管理激活功能,启动,关闭,,应该参考/etc/init.d/路径下的服务配置,复制一个小的服务配置文件,然后改改名字,替换里面的命令,做成服务,例如自定义一个telnetd服务
  1. cat << "EOF" >> /etc/init.d/telnetd
  2. #!/bin/sh /etc/rc.common

  3. START=98

  4. USE_PROCD=1
  5. NAME=telnetd
  6. PROG=telnetd

  7. start_service() {
  8.     procd_open_instance
  9.     procd_set_param command "$PROG"
  10.     procd_close_instance
  11. }

  12. EOF

  13. chmod 755 /etc/init.d/telnetd
  14. /etc/init.d/telnetd enable
  15. /etc/init.d/telnetd start
复制代码
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

rc.local并不存在什么扩展性,很少用的一个东西,根据linux官方的说法,此文件存在的目的是为了保持兼容性。
挂载磁盘这种活fstab是专业的,fstab都不行的话一定是有错误。
启动后直接在终端里用mount挂载看看有没有问题,报不报错。

点评

mount没问题  详情 回复 发表于 2023-11-1 18:47
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
XanaduNWH 发表于 2023-11-1 16:41
rc.local并不存在什么扩展性,很少用的一个东西,根据linux官方的说法,此文件存在的目的是为了保持兼容性 ...

mount没问题
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
aming.ou 发表于 2023-11-1 08:01
rc.local开机时自动执行一次,至于你里面的命令,也许已经执行,但因为执行时机不对,所以好像没执行(挂载 ...

大佬你说的对,可能是时机不对,有/tmp/etst.log,但是怎么解决呢

点评

开机虽然是十来秒钟的事情,但硬件加载和程序加载每一步也是有顺序的,你可以查一查内核日志,看看USB接口加载时间,还有rc执行(通过echo)哪个在前。又或者你在rc中挂载指令前,添加一条等待命令 sleep 30,强制等  详情 回复 发表于 2023-11-1 19:42
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来自手机 | 显示全部楼层
本帖最后由 aming.ou 于 2023-11-1 19:51 编辑
dondongc 发表于 2023-11-1 18:55
大佬你说的对,可能是时机不对,有/tmp/etst.log,但是怎么解决呢


开机虽然是十来秒钟的事情,但硬件加载和程序加载每一步也是有顺序的,你可以查一查内核日志,看看USB接口加载时间,还有rc执行(通过echo)哪个在前。又或者你在rc中挂载指令前,添加一条等待命令 sleep 30,强制等待30秒后才继续执行后续命令。 然后你开机等待1分钟后,再去看看是不是已经挂载了。

点评

多谢大佬,按照你的方法,加了sleep 命令解决了  详情 回复 发表于 2023-11-1 20:02
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-29 04:49

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表