php - 从网站(php)运行时如何停止python脚本

标签 php python linux raspberry-pi

我的项目是树莓派上的灯光控制 通过使用 Rasp Pi 作为 Web 服务器并通过 python 脚本控制灯光 我用PHP网站上的UI来控制灯光

这是我的php代码

<?php
    public function auto1()
    {   
        system('sudo -u root -S python /var/www/4led/chktime1.py');
    }

    public function disauto1()
    {   
        system('echo raspberry | sudo -u root -S pkill -f chktime1.py');
    }
?>

当我按下网站上的 on 按钮以打开自动脚本时它调用 auto1 并正常工作但这是循环脚本(我打算让它一直循环)但是当我按下关闭按钮时它无法关闭它因为chktime1.py 的循环仍在运行,无法在 disauto1 中打开其他脚本或命令。我怎样才能从 PHP 命令停止这个脚本。

谢谢你的帮助

最佳答案

不确定您的问题是否已解决,但也许对其他人有帮助。 您可以在 PHP 中触摸一个文件并检查您的 chktime1.py 文件是否存在。

<form action="" method="post">
     <input type="submit" name="start" value="start" />
     <input type="submit" name="stop" value="stop" />
</form>

<?php
    if(isset($_POST['start'])){
        system('sudo -u root -S python /var/www/4led/chktime1.py');
    }
    if(isset($_POST['stop'])){
        system('sudo -u root -S touch /var/www/4led/stop-script');
    }
?>

你可以将它添加到你的 Python 中

import os, sys

while(true): 
   #your code
   if(os.path.isfile('/var/www/4led/stop-script')):
      break

os.system("sudo -u root -S rm /var/www/4led/stop-script")

关于php - 从网站(php)运行时如何停止python脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37421589/

相关文章:

python pandas数据框按日期条件切片

linux - Eclipse 的一个窗口中的 Bash shell

linux - 用户更改密码时发送电子邮件

php - Mysql LEFT Join 大数据表

php - 公共(public)交通中的图论

Python 日志模块在 Mac 上记录,但在 Linux 上不记录

python - 从 Jinja 模板发送查询参数

我可以在没有键盘的情况下访问标准输入吗?

php - XSLT 使用正则表达式、单词边界搜索 XML

php - 这个 PHPUnit 测试是否有意义(或者我正在测试框架/PHP)?