Скрипт на
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: The HOME environment variable is not set
No VNC display opened under :1.
Running VNC Server and trying again.
ERROR: No VNC display opened under :1.
Cannot continue.
Как я понимаю
vncserver не хочет запускаться с правами пользователя
Apache, а только из под пользователя - ошибка связана с правами на исполнение. Т.к. если запускать скрипт напрямую, в командной строке, от имени пользователя - ошибок нет и все работает нормально.
ВОПРОС: как запустить скрипт
Python из
PHP от имени пользователя и добиться запуска
vncserver?
Я думаю что все таки нужно как то научить скрипт работать правильно с правами
Apache, но не знаю как это сделать. Предложите пожалуйста варианты решения. Спасибо.