gpt4 book ai didi

python - 在服务器上运行 python 脚本

转载 作者:太空宇宙 更新时间:2023-11-04 11:26:48 25 4
gpt4 key购买 nike

我在服务器上有一个 python 脚本

#!/usr/bin/env  python
import cgi
import cgitb; #cgitb.enable()
import sys, os
from subprocess import call
import time
import subprocess
form = cgi.FieldStorage()

component = form.getvalue('component')
command = form.getvalue('command')

success = True

print """Content-Type: text/html\n"""

if component=="Engine" and command=="Start":
try:
process = subprocess.Popen(['/usr/sbin/telepath','engine','start'], shell=False, stdout=subprocess.PIPE)
print "{ans:12}"
except Exception, e:
success = False
print "{ans:0}"

当我运行此脚本并将组件和命令参数分别添加为“Engine”和“Start”时 - 它会启动进程并打印到 shell

"""Content-Type: text/html\n"""
{ans:12}

但最重要的是 - 它启动了这个过程!

然而,当我通过 POST 运行脚本时,它返回 {ans:12} 但不运行最初是整个意图的过程。有什么合乎逻辑的解释吗?

最佳答案

我怀疑这是两件事之一,首先你的进程可能正在运行,但你的 python 代码不处理输出,所以这样做:

process = subprocess.Popen(['/usr/sbin/telepath','engine','start'], shell=False, stdout=subprocess.PIPE)
print process.stdout.read()

这是最有可能的,它解释了为什么您看到的是命令行输出而不是浏览器,或者其次是因为脚本是作为用户 apache 而不是您的 userid 检查 /usr/sbin/telepath 的权限。

关于python - 在服务器上运行 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14194643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com