import os import subprocess import socket #!/usr/bin/env python3 def get_ip_address(): return socket.gethostbyname(socket.gethostname()) # Fichero de registro de incidencias (en el servidor; si no, en local). OPENGNSYS = os.getenv('OPENGNSYS', '/opt/opengnsys') OGLOGFILE = os.getenv('OGLOGFILE', f'{OPENGNSYS}/log/{get_ip_address()}.log') try: with open(OGLOGFILE, 'a'): pass except IOError: OGLOGFILE = '/var/log/opengnsys.log' LOGLEVEL = 5 # Matando plymount para iniciar browser o shell subprocess.run(['pkill', '-9', 'plymouthd']) # Arranque de OpenGnsys Client daemon (socket). print(os.getenv('MSG_LAUNCHCLIENT', '.')) # Indicar fichero de teclado de Qt para el idioma especificado (tipo "es.qmap"). lang = os.getenv('LANG', '') if os.path.isfile(f'/usr/local/etc/{lang.split("_")[0]}.qmap'): os.environ['QWS_KEYBOARD'] = f'TTY:keymap=/usr/local/etc/{lang.split("_")[0]}.qmap' ogstatus = os.getenv('ogstatus', '') if os.path.isfile(f'{OPENGNSYS}/bin/ogAdmClient') and ogstatus != 'offline': # Ejecutar servicio cliente. subprocess.run([f'{OPENGNSYS}/bin/ogAdmClient', '-f', f'{OPENGNSYS}/etc/ogAdmClient.cfg', '-l', OGLOGFILE, '-d', str(LOGLEVEL)]) else: OGMENU = None for FILE in ['index', os.getenv('OGGROUP', ''), get_ip_address()]: if os.path.isfile(f'{OPENGNSYS}/menus/{FILE}.html'): OGMENU = f'{OPENGNSYS}/menus/{FILE}.html' break if OGMENU: subprocess.run([f'{OPENGNSYS}/bin/browser', '-qws', OGMENU]) # Si fallo en cliente y modo "admin", cargar shell; si no, salir. if os.getenv('ogactiveadmin') == 'true': subprocess.run(['bash'])