我正在尝试从网页中杀死一个进程。
import os
os.system(“killall Laser”)
print("Content-Type: text/HTML;charset=utf-8")
print("")
print("Laser has been restarted.")文件权限设置为777,我已经设置了setuid和setgid。当我从命令行运行脚本而不是在浏览器中运行它时,该脚本可以工作。
它在ubuntu上运行,the服务器是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)和:
import subprocess as sub, cgitb
cgitb.enable(display=0, logdir="/tmp")
cmd1 = "su root"
cmd2 = "killall Laser"
p = sub.Popen("{}; {}".format(cmd1, cmd2),shell=True,stdout=sub.PIPE,stderr=sub.PIPE, close_fds=True)
output, errors = p.communicate()
print("Content-Type: text/HTML;charset=utf-8")
print("")
print(output)有什么想法吗?
哑光
发布于 2012-11-28 01:23:37
您应该在其配置中通过ligghtpd将.py文件指定为CGI/fastcgi-scripts:
$HTTP["url"] =~ "^/cgi-bin/" {
cgi.assign = ( ".py" => "/usr/bin/python" )
}不要忘记python脚本第一行中的shebang (#!/usr/bin/env python)。有关更多细节,请阅读此处:http://ubuntuforums.org/showthread.php?t=1166401
https://stackoverflow.com/questions/13588024
复制相似问题