Skip to content
Snippets Groups Projects
supervisord.py 33.5 KiB
Newer Older
  • Learn to ignore specific revisions
  •                 if prvnam not in privileges:
                        print(f'{sn}: {prvnam} not a valid privilege')
                        crtl.vms_exit(ssdef.SS__INVARG)
                    prv = (
                        privileges[prvnam]
                        if prv is None
                        else PrvMask(prv | privileges[prvnam])
                    )
    
    
    jfp's avatar
    jfp committed
                name = sn.split(':')[-1].upper()
    
                process_name = config[sn].get('process_name', name)
    
                autostart = config[sn].getboolean('autostart', True)
    
                command = config[sn].get('command', 'NLA0:')
    
                image = config[sn].get('image', 'SYS$SYSTEM:LOGINOUT.EXE')
    
    jfp's avatar
    jfp committed
                stdout_file = config[sn].get('stdout_file', 'NLA0:')
                stderr_file = config[sn].get('stderr_file', 'NLA0:')
    
    jfp's avatar
    jfp committed
                priority = config[sn].getint('priority', 999)
    
                baspri = config[sn].getint('baspri', 4)
    
                nouaf = config[sn].getboolean('nouaf', False)
                kt_limit = config[sn].getint('kt_limit', 0)
    
    jfp's avatar
    jfp committed
                startsecs = config[sn].getint('startsecs', 10)
                startretries = config[sn].getint('startretries', 3)
                stopwaitsecs = config[sn].getint('stopwaitsescs', 10)
    
                autorestart = auto_restart(
                    config[sn].get('autorestart', 'unexpected')
                )
                exitcodes = config[sn].get('exitcodes', '1').split(',')
    
    jfp's avatar
    jfp committed
                user = config[sn]['user']
    
                if prv is not None or quotaslst is not None:
                    nouaf = True
    
    jfp's avatar
    jfp committed
                p = Program(
                    name=name,
                    user=user,
                    command=command,
    
    jfp's avatar
    jfp committed
                    process_name=process_name,
                    autostart=autostart,
    
    jfp's avatar
    jfp committed
                    priority=priority,
    
    jfp's avatar
    jfp committed
                    stdout_file=stdout_file,
                    stderr_file=stderr_file,
                    startsecs=startsecs,
                    startretries=startretries,
                    stopwaitsecs=stopwaitsecs,
    
                    nouaf=nouaf,
                    quotas=prcquotas,
                    prv=prv,
    
                    kt_limit=kt_limit,
    
                    exitcodes=[
                        int(exitcode) for exitcode in exitcodes if exitcode != ''
                    ],
    
    jfp's avatar
    jfp committed
                )
                Program.programs[name] = p
    
    
        chan, Program.mbxunt, chancmd = mbx_init()
        run(chan, chancmd)
    
    jfp's avatar
    jfp committed
    
    
    if __name__ == '__main__':
        main()