【问题标题】:How can I kill a process as user www-data如何以用户 www-data 的身份终止进程
【发布时间】:2015-07-04 10:52:00
【问题描述】:

我以用户 www-data 的身份通过网页启动一个 Python 文件。以后如何通过运行不同的 Python 脚本来终止该进程?

我的 PHP 网页包含此代码以启动该过程:

echo shell_exec("sudo python /home/pi/Desktop/PiControl/motion_sensor.py");

【问题讨论】:

标签: php python shell


【解决方案1】:

方法一(这回答了你在标题上的问题):

让 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 脚本,为什么你不能杀死它呢?试试看吧。

【讨论】:

    猜你喜欢
    • 2017-07-25
    • 2019-04-06
    • 1970-01-01
    • 1970-01-01
    • 2017-03-19
    • 1970-01-01
    • 2012-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多