Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自cgi的python os.sytem kill进程_Python_Linux_Process - Fatal编程技术网

来自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" )
}