【发布时间】:2015-07-04 10:52:00
【问题描述】:
我以用户 www-data 的身份通过网页启动一个 Python 文件。以后如何通过运行不同的 Python 脚本来终止该进程?
我的 PHP 网页包含此代码以启动该过程:
echo shell_exec("sudo python /home/pi/Desktop/PiControl/motion_sensor.py");
【问题讨论】:
我以用户 www-data 的身份通过网页启动一个 Python 文件。以后如何通过运行不同的 Python 脚本来终止该进程?
我的 PHP 网页包含此代码以启动该过程:
echo shell_exec("sudo python /home/pi/Desktop/PiControl/motion_sensor.py");
【问题讨论】:
让 www-data 成为您服务器中的管理员。
adduser www-data sudo
然后在执行命令的时候去掉sudo密码
参考:Execute sudo without Password?
sudo visudo
在文件底部,输入以下内容:
www-data ALL=(ALL) NOPASSWD: ALL
注意:存在非常高的安全风险,黑客可能会关闭您的服务器,对您的服务器做任何您能想象到的事情!这样做需要您自担风险
编写一个服务(使用 PHP 或 Python 以外的东西)并以 root/admin 用户身份运行,一旦被调用,就杀死服务器上的所有 python。
一个愚蠢的方法:让你的 Python 在启动时创建一个空文件,将该文件权限设置为 777,以便任何用户都可以删除它。每5秒检查文件是否存在,如果不存在则自行退出。
最后,如果你想停止你的 python,只要让 php 删除那个文件。
我刚刚注意到,www-data 会像自己一样运行你的 python 脚本,为什么你不能杀死它呢?试试看吧。
【讨论】: