如何以用户www-data

时间:2015-04-25 21:49:06

标签: php python shell

我通过网页以用户www-data启动Python文件。如何通过运行不同的Python脚本在以后杀死进程?

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

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

1 个答案:

答案 0 :(得分:2)

方法1(这将回答您关于标题的问题):

让www-data成为您服务器的管理员。

var colorsObj = {
    color1: [ orange,amber,apricot,tangerine,bittersweet,persimmon,salmon,peach,pumpkin ]
}

function drawCanvas( color ) {
    var colorList = colorsObj[color];
    for( var i = 0;  i < colorList.length;  i++ ) {
        var $canvas = $('<canvas class="shadescolors">').appendTo('.app');
        var canvas = $canvas[0];
        var context = canvas.getContext('2d');

        var cc = canvas.width = canvas.height = window.innerWidth / 3;
        var radius = cc/2-10;
        context.beginPath();
        context.arc(cc/2, cc/2, cc/2-10, 0, Math.PI*2, true);
        context.fillStyle = colorsList[i];
        context.fill();
        context.lineWidth = 2;
        context.strokeStyle = '#8A8A8A';
        context.stroke();
    }
}

drawCanvas('color1');

然后在执行命令时删除sudo密码

参考:Execute sudo without Password?

adduser www-data sudo

在文件底部,输入以下内容:

sudo visudo

注意:存在非常高的安全风险,黑客可能会关闭您的服务器,做任何您能想象到的服务器!这样做需要您自担风险

方法2:

编写一个服务(使用PHP或Python以外的东西)并以root用户身份运行,一旦调用它,就可以杀死服务器上的所有python。

方法3:

一种愚蠢的方法:让你的Python在启动时创建一个空文件,将该文件权限设置为777,以便任何用户都可以删除它。检查文件是否每5秒存在一次,如果不存在,则自行退出。

最后,如果你想停止你的python,只需让php删除该文件。

方法4:

我刚注意到,www-data将运行你自己的python脚本,为什么不能杀掉它?试一试。