Update application process initialization logic
This commit is contained in:
parent
f8c92f0f92
commit
513c2139d6
1 changed files with 20 additions and 2 deletions
|
@ -111,9 +111,27 @@ class ApplicationController:
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def __run_process(initialization_file_path, profile, display, session_state):
|
def __run_process(initialization_file_path, profile, display, session_state):
|
||||||
|
|
||||||
process = subprocess.Popen(('xinit', initialization_file_path, '--', '/usr/bin/Xephyr', '-ac', '-title', f'Simplified Privacy - {profile.name or "Unnamed Profile"}', '-screen', profile.resolution, '-no-host-grab', display), stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT)
|
virtual_display_process = subprocess.Popen(('/usr/bin/Xephyr', '-ac', '-br', '-title', f'Simplified Privacy - {profile.name or "Unnamed Profile"}', '-screen', profile.resolution, '-no-host-grab', display), stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT)
|
||||||
|
|
||||||
session_state = SessionState(session_state.id, session_state.network_port_numbers, [process.pid])
|
start_time = time.time()
|
||||||
|
timeout = float(10)
|
||||||
|
|
||||||
|
while not os.path.exists(f'/tmp/.X11-unix/X{display[1:]}'):
|
||||||
|
|
||||||
|
if time.time() - start_time < timeout:
|
||||||
|
time.sleep(0.1)
|
||||||
|
|
||||||
|
else:
|
||||||
|
|
||||||
|
virtual_display_process.kill()
|
||||||
|
return
|
||||||
|
|
||||||
|
environment = os.environ.copy()
|
||||||
|
environment.update({'DISPLAY': display})
|
||||||
|
|
||||||
|
process = subprocess.Popen(initialization_file_path, env=environment)
|
||||||
|
|
||||||
|
session_state = SessionState(session_state.id, session_state.network_port_numbers, [virtual_display_process.pid, process.pid])
|
||||||
SessionStateController.update_or_create(session_state)
|
SessionStateController.update_or_create(session_state)
|
||||||
|
|
||||||
process.wait()
|
process.wait()
|
||||||
|
|
Loading…
Reference in a new issue