我的 Raspbian 没有通过 Python 应用程序重新启动

My Raspbian doesn't reboot via a Python application

我拼命想找到一种方法来强制我的 Raspberry Pi 运行 Raspbian 在满足特定条件时重新启动(Python 脚本),但是到目前为止我没有成功...

我已经使用 popen 尝试了以下语句:

sudo reboot -i -p
sudo reboot -f
sudo shutdown -r -f now

我认为问题可能是通过 Python 应用程序本身调用它,因此我写了一个小 C 程序来杀死所有 运行 Python 应用程序然后重新启动,但是没有成功...

我的 Raspberry 电源充足(红色 LED 始终亮着),我上面描述的所有命令在直接从命令 window.

中调用时都能正常工作

感谢任何帮助!

谢谢,

已编辑: 根据需要添加我的 python 脚本:

    from subprocess import Popen, PIPE

    def reboot():
        echo.echo("Rebooting...")
        db.write_alarm(get_alarm_status())
        upload.upload_log()
        reboot_statement = "sudo shutdown -r -f now"
        popen_args = reboot_statement.split(" ")
        Popen(popen_args, stdout=PIPE, stderr=PIPE)

您应该传递 shell=True 您希望 shell 处理参数的 ID

Popen("sudo shutdown -r -f now", stdout=PIPE, stderr=PIPE, shell=True)

试试这个:

使用以下内容创建名为 reboot.py 的文件:

import os
os.system("shutdown -r now")

然后这样称呼它:

sudo python reboot.py

假设这可行,您可能可以使用 sudo 调用您的原始脚本以使其工作。