OpenWrt Luci页面中“启动脚本”的文件路径,以及启动程序被阻止

目前OpenWrt Luci Web界面中的“启动项”下有一个“本地启动脚本”:

本地启动脚本
启动脚本插入到 exit 0 之前即可随系统启动运行。
# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.

sleep 10s && python /usr/bin/<example_python> > /dev/null 2>&1

sleep 10s && /etc/init.d/<example_service> start

exit 0

现在我将连接网络(某校园网验证)所使用的Python守护程序<example_python>写在此处。由于该程序为守护程序,会一直运行。所以在该项之后启动的所有程序都不会启动(例如上述代码中的<example_service>),除非Python程序被手动停止。

但是我还有程序<example_service>需要在联网之后才能启动,否则会无法达到预期功能,所以必须在Python程序<example_python>启动之后才能启动。

由于启动未结束,某些命令例如reboot也无法正常执行。

  1. 这个“本地启动脚本”的文件路径为?
  2. 如上面所述,顺序启动被某程序阻碍的问题该如何解决?(上文提到的Python程序可以修改,但是无法改变其原有功能)
阅读 7.4k
1 个回答
  1. 脚本在 /etc/rc.local.
  2. 在你的 python 程序中判断依赖服务状态,再启动相关功能。

当然最“正宗”的办法是写一个服务,通过配置 START=NN 变量,来控制服务的启动顺序。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进