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

时间:2016-05-24 18:47:13

标签: php python linux raspberry-pi

我的项目是Rasp 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');
    }
?>

当我按下网站上的开启按钮转动自动脚本它调用auto1并正常工作但这是循环脚本(我打算让它循环播放)但是当我按下关闭按钮它无法关闭它因为chktime1.py的循环仍然有效,无法在disauto1中打开其他脚本或命令。如何从PHP命令停止此脚本。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

不确定您的问题是否已解决但可能对其他人有帮助。 您可以在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/4led/stop-script")