Update application process initialization logic

This commit is contained in:
codeking 2024-12-06 00:37:41 +01:00
parent f8c92f0f92
commit 513c2139d6

View file

@ -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()