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

参考:关于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 #查看执行状态

你可能感兴趣的:(1024程序员节)