我通过网页以用户www-data启动Python文件。如何通过运行不同的Python脚本在以后杀死进程?
我的PHP网页包含此代码以启动该过程:
echo shell_exec("sudo python /home/pi/Desktop/PiControl/motion_sensor.py");
答案 0 :(得分:2)
让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
注意:存在非常高的安全风险,黑客可能会关闭您的服务器,做任何您能想象到的服务器!这样做需要您自担风险
编写一个服务(使用PHP或Python以外的东西)并以root用户身份运行,一旦调用它,就可以杀死服务器上的所有python。
一种愚蠢的方法:让你的Python在启动时创建一个空文件,将该文件权限设置为777,以便任何用户都可以删除它。检查文件是否每5秒存在一次,如果不存在,则自行退出。
最后,如果你想停止你的python,只需让php删除该文件。
我刚注意到,www-data将运行你自己的python脚本,为什么不能杀掉它?试一试。