** Python ** 中的脚本是从 ** PHP ** 运行的。该脚本运行正常,但到达启动 ** vncserver ** 行时,无法运行它:
#!/usr/bin/env python3.8
# -*- coding: UTF-8 -*-
import time
import requests
from datetime import datetime
from pymongo import MongoClient
from multiprocessing import Pool
import json
import math
import subprocess
import os
SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
.
.
.
## VNC Display checks
# Configure DISPLAY variable to VNC
os.environ["DISPLAY"] = cfg["vnc_display"]
if os.system("xhost >& /dev/null"):
print("WARNING: No VNC display opened under %s. Running VNC Server and trying again" % (os.environ["DISPLAY"]))
os.system("vncserver %s" % (os.environ["DISPLAY"]))
time.sleep(5)
if os.system("xhost >& /dev/null"):
print("ERROR: No VNC display opened under %s. Cannot continue" % (os.environ["DISPLAY"]))
return
.
.
.
if __name__ == "__main__":
command_line_runner()
停止工作并显示一条消息:
vncserver:未设置 HOME 环境变量
未在 :1 下打开 VNC 显示器。
正在运行 VNC 服务器并重试。
错误:未在 :1 下打开 VNC 显示器。
无法继续。
据我了解,** vncserver ** 不想以用户权限 ** Apache ** 启动,而只能以用户权限启动 - 错误与执行权限有关。因为如果您直接在命令行上代表用户运行脚本 - 则不会出现任何错误,一切正常。我想我需要以某种方式教脚本以 ** Apache ** 权限正确运行,但我不知道该怎么做。请提出解决方案。谢谢。