关于rc.local 自启动多个应用问题

文章讲述了如何使用Python的threading模块编写脚本,在Linux开机rc.local环境下实现sudoppppdcalldial和sudorouteadd命令的并发执行,确保命令按顺序执行并解决rc.local启动脚本不生效的问题。
摘要由CSDN通过智能技术生成

参考:关于rc.local 自启动多个应用问题_rc.local启动多个服务-CSDN博客

Linux开机rc.local不自启动执行脚本问题的排查思路及问题解决_rc.local文件启动不生效-CSDN博客

Ask GPT

如果第一个命令 sudo pppd call dial 不返回并且一直在运行,而你需要等待一段时间后执行第二个命令 sudo route add -net 0.0.0.0 ppp0,你可以使用Python来编写一个脚本,以便在不同线程中运行这两个命令。Python的threading模块可用于创建多线程应用。以下是一个Python脚本示例:

import subprocess
import threading
import time

def run_pppd():
    # 启动第一个命令
    subprocess.call(["sudo", "pppd", "call", "dial"])

def run_route_add():
    # 等待一段时间(例如,10秒),这里的时间长度会影响执行,确保第一个执行后再执行第二个
    time.sleep(30)
    # 启动第二个命令
    subprocess.call(["sudo", "route", "add", "-net", "0.0.0.0", "ppp0"])

if __name__ == "__main__":
    # 创建两个线程分别运行两个命令
    thread1 = threading.Thread(target=run_pppd)
    thread2 = threading.Thread(target=run_route_add)

    # 启动线程
    thread1.start()
    thread2.start()

    # 等待线程结束
    thread1.join()
    thread2.join()

这个Python脚本创建了两个线程,一个用于运行第一个命令,另一个用于运行第二个命令。你可以根据需要调整等待的时间(time.sleep(10))以确保第一个命令有足够的时间来运行,然后再执行第二个命令。

将这个Python脚本保存为一个文件(例如,run_commands.py),然后在系统启动时运行它。确保Python解释器可用,因为你会在脚本中使用Python。

pi@raspberrypi:~ $ sudo gedit /etc/rc.local
# add python ./../.py
pi@raspberrypi:~ $ systemctl status rc-local #查看执行状态

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值