来自cgi的python os.sytem kill进程
我正在尝试从网页中删除进程来自cgi的python os.sytem kill进程,python,linux,process,Python,Linux,Process,我正在尝试从网页中删除进程 import os os.system(“killall Laser”) print("Content-Type: text/HTML;charset=utf-8") print("") print("Laser has been restarted.") 文件权限设置为777,我已经设置了setuid和setgid。当我从命令行(而不是浏览器)运行脚本时,脚本可以工作 这是在ubuntu上运行的,Web服务器是lighthttp 该进程由root所有 我还尝试
import os
os.system(“killall Laser”)
print("Content-Type: text/HTML;charset=utf-8")
print("")
print("Laser has been restarted.")
文件权限设置为777,我已经设置了setuid和setgid。当我从命令行(而不是浏览器)运行脚本时,脚本可以工作
这是在ubuntu上运行的,Web服务器是lighthttp
该进程由root所有
我还尝试使用:
import subprocess as sub, cgitb
cgitb.enable(display=0, logdir="/tmp")
p = sub.Popen(['killall;', 'Laser'],shell=True,stdout=sub.PIPE,stderr=sub.PIPE)
output, errors = p.communicate()
print("Content-Type: text/HTML;charset=utf-8")
print("")
print(output)
以及:
有什么想法吗
Matt您应该通过其配置中的LIGHTPD将.py文件指定为CGI/fastcgi脚本运行:
$HTTP["url"] =~ "^/cgi-bin/" {
cgi.assign = ( ".py" => "/usr/bin/python" )
}
不要忘记python脚本第一行的shebang(#!/usr/bin/env-python)。
阅读此处了解更多详细信息:python脚本工作正常。这个过程是由root用户启动的,所以我认为该网页没有删除它的权限。python中有没有一种方法可以在试图终止进程之前传入这样的内容:su-s root?
$HTTP["url"] =~ "^/cgi-bin/" {
cgi.assign = ( ".py" => "/usr/bin/python" )
}