source: client/shared/etc/preinit/poweroff.py @ 937f1b5

ogClonningEngine
Last change on this file since 937f1b5 was 5b1449d, checked in by Antonio Emmanuel Guerrero Silva <aguerrero@…>, 7 months ago

refs #700 shared files convert to Python3

  • Property mode set to 100644
File size: 1.7 KB
Line 
1#!/usr/bin/env python3
2
3import os
4import subprocess
5import sys
6
7"""
8@file    poweroff.py
9@brief   Script de inicio para cargar el proceso comprobación de clientes inactivos.
10@note    Arranca y configura el proceso "cron".
11"""
12
13def main():
14    opengnsys = os.getenv('OPENGNSYS')
15    if opengnsys:
16        msg_poweroffconf = os.getenv('MSG_POWEROFFCONF', '.')
17        print(msg_poweroffconf)
18
19        ogntp = os.getenv('ogntp')
20        status = os.getenv('status')
21
22        # Sincronización horaria con servidor NTP.
23        if ogntp and status != "offline":
24            subprocess.run(['ntpdate', ogntp])
25
26        # Crear fichero de configuración por defecto (30 min. de espera).
27        poweroff_conf = '/etc/poweroff.conf'
28        with open(poweroff_conf, 'w') as f:
29            f.write("POWEROFFSLEEP=30\nPOWEROFFTIME=\n")
30
31        # Incluir zona horaria en el fichero de configuración.
32        with open('/proc/cmdline') as f:
33            cmdline = f.read()
34        tz = ' '.join([x for x in cmdline.split() if x.startswith('TZ=')])
35        with open(poweroff_conf, 'a') as f:
36            f.write(tz + '\n')
37
38        # Lanzar el proceso "cron".
39        subprocess.run(['cron', '-l'])
40
41        # Definir la "crontab" lanzando el proceso de comprobación cada minuto.
42        ogbin = os.getenv('OGBIN')
43        crontab_line = f"* * * * *   [ -x {ogbin}/poweroffconf ] && {ogbin}/poweroffconf\n"
44        subprocess.run(['crontab', '-'], input=crontab_line, text=True)
45
46    else:
47        # FIXME Error: entorno de OpenGnsys no configurado.
48        print("Error: OpenGnsys environment is not configured.")  # FIXME: definir mensaje.
49        sys.exit(1)
50
51if __name__ == "__main__":
52    main()
Note: See TracBrowser for help on using the repository browser.