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
|
||||
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)
|
||||
|
||||
process.wait()
|
||||
|
|
Loading…
Reference in a new issue