diff --git a/supervisorvms/supervisord.py b/supervisorvms/supervisord.py
index 4479c7dd2219373173beba41733c02c96b848af2_c3VwZXJ2aXNvcnZtcy9zdXBlcnZpc29yZC5weQ==..bbc34a7795e4ca8acebca18b775875b9bab71196_c3VwZXJ2aXNvcnZtcy9zdXBlcnZpc29yZC5weQ== 100644
--- a/supervisorvms/supervisord.py
+++ b/supervisorvms/supervisord.py
@@ -35,5 +35,5 @@
 from ovms.rtl import lib
 
 logger: logging.Logger
-logger = logging.getLogger('supervisord')
+logger = logging.getLogger("supervisord")
 
@@ -39,3 +39,3 @@
 
-supervisord_table_name = b'SUPERVISORD_TABLE'
+supervisord_table_name = b"SUPERVISORD_TABLE"
 current_tick: int = 0
@@ -41,3 +41,3 @@
 current_tick: int = 0
-timer_queue: queue.PriorityQueue['PrioritizedItem'] = queue.PriorityQueue()
+timer_queue: queue.PriorityQueue["PrioritizedItem"] = queue.PriorityQueue()
 
@@ -43,3 +43,3 @@
 
-supervisorctl_pwd = ''
+supervisorctl_pwd = ""
 
@@ -45,4 +45,4 @@
 
-TRUTHY_STRINGS = ('yes', 'true', 'on', '1')
-FALSY_STRINGS = ('no', 'false', 'off', '0')
+TRUTHY_STRINGS = ("yes", "true", "on", "1")
+FALSY_STRINGS = ("no", "false", "off", "0")
 
@@ -48,6 +48,6 @@
 
-timer_delay = starlet.bintim('0 0:00:01.00')[1]
+timer_delay = starlet.bintim("0 0:00:01.00")[1]
 timer_astctx = vmsast.AstContext(vmsast.M_WAKE | vmsast.M_QUEUE)
 
 
 # Define a new type called "PrvMask", which is internally an `int`
@@ -50,6 +50,6 @@
 timer_astctx = vmsast.AstContext(vmsast.M_WAKE | vmsast.M_QUEUE)
 
 
 # Define a new type called "PrvMask", which is internally an `int`
-PrvMask = NewType('PrvMask', int)
+PrvMask = NewType("PrvMask", int)
 # Ditto for "PidType"
@@ -55,4 +55,4 @@
 # Ditto for "PidType"
-PidType = NewType('PidType', int)
+PidType = NewType("PidType", int)
 
 privileges: Dict[str, PrvMask] = {
@@ -57,46 +57,46 @@
 
 privileges: Dict[str, PrvMask] = {
-    'NOSAME': PrvMask(0),
-    'ACNT': PrvMask(prvdef.PRV_M_ACNT),
-    'ALLSPOOL': PrvMask(prvdef.PRV_M_ALLSPOOL),
-    'ALTPRI': PrvMask(prvdef.PRV_M_ALTPRI),
-    'AUDIT': PrvMask(prvdef.PRV_M_AUDIT),
-    'BUGCHK': PrvMask(prvdef.PRV_M_BUGCHK),
-    'BYPASS': PrvMask(prvdef.PRV_M_BYPASS),
-    'CMEXEC': PrvMask(prvdef.PRV_M_CMEXEC),
-    'CMKRNL': PrvMask(prvdef.PRV_M_CMKRNL),
-    'DIAGNOSE': PrvMask(prvdef.PRV_M_DIAGNOSE),
-    'DOWNGRADE': PrvMask(prvdef.PRV_M_DOWNGRADE),
-    'EXQUOTA': PrvMask(prvdef.PRV_M_EXQUOTA),
-    'GROUP': PrvMask(prvdef.PRV_M_GROUP),
-    'GRPNAM': PrvMask(prvdef.PRV_M_GRPNAM),
-    'GRPPRV': PrvMask(prvdef.PRV_M_GRPPRV),
-    'IMPERSONATE': PrvMask(prvdef.PRV_M_IMPERSONATE),
-    'IMPORT': PrvMask(prvdef.PRV_M_IMPORT),
-    'LOG_IO': PrvMask(prvdef.PRV_M_LOG_IO),
-    'MOUNT': PrvMask(prvdef.PRV_M_MOUNT),
-    'NETMBX': PrvMask(prvdef.PRV_M_NETMBX),
-    'OPER': PrvMask(prvdef.PRV_M_OPER),
-    'PFNMAP': PrvMask(prvdef.PRV_M_PFNMAP),
-    'PHY_IO': PrvMask(prvdef.PRV_M_PHY_IO),
-    'PRMCEB': PrvMask(prvdef.PRV_M_PRMCEB),
-    'PRMGBL': PrvMask(prvdef.PRV_M_SYSGBL),
-    'PRMMBX': PrvMask(prvdef.PRV_M_PRMMBX),
-    'PSWAPM': PrvMask(prvdef.PRV_M_PSWAPM),
-    'READALL': PrvMask(prvdef.PRV_M_READALL),
-    'SECURITY': PrvMask(prvdef.PRV_M_SECURITY),
-    'SETPRV': PrvMask(prvdef.PRV_M_SETPRV),
-    'SHARE': PrvMask(prvdef.PRV_M_SHARE),
-    'SHMEM': PrvMask(prvdef.PRV_M_SHMEM),
-    'SYSGBL': PrvMask(prvdef.PRV_M_SYSGBL),
-    'SYSLCK': PrvMask(prvdef.PRV_M_SYSLCK),
-    'SYSNAM': PrvMask(prvdef.PRV_M_SYSNAM),
-    'SYSPRV': PrvMask(prvdef.PRV_M_SYSPRV),
-    'TMPMBX': PrvMask(prvdef.PRV_M_TMPMBX),
-    'UPGRADE': PrvMask(prvdef.PRV_M_UPGRADE),
-    'VOLPRO': PrvMask(prvdef.PRV_M_VOLPRO),
-    'WORLD': PrvMask(prvdef.PRV_M_WORLD),
+    "NOSAME": PrvMask(0),
+    "ACNT": PrvMask(prvdef.PRV_M_ACNT),
+    "ALLSPOOL": PrvMask(prvdef.PRV_M_ALLSPOOL),
+    "ALTPRI": PrvMask(prvdef.PRV_M_ALTPRI),
+    "AUDIT": PrvMask(prvdef.PRV_M_AUDIT),
+    "BUGCHK": PrvMask(prvdef.PRV_M_BUGCHK),
+    "BYPASS": PrvMask(prvdef.PRV_M_BYPASS),
+    "CMEXEC": PrvMask(prvdef.PRV_M_CMEXEC),
+    "CMKRNL": PrvMask(prvdef.PRV_M_CMKRNL),
+    "DIAGNOSE": PrvMask(prvdef.PRV_M_DIAGNOSE),
+    "DOWNGRADE": PrvMask(prvdef.PRV_M_DOWNGRADE),
+    "EXQUOTA": PrvMask(prvdef.PRV_M_EXQUOTA),
+    "GROUP": PrvMask(prvdef.PRV_M_GROUP),
+    "GRPNAM": PrvMask(prvdef.PRV_M_GRPNAM),
+    "GRPPRV": PrvMask(prvdef.PRV_M_GRPPRV),
+    "IMPERSONATE": PrvMask(prvdef.PRV_M_IMPERSONATE),
+    "IMPORT": PrvMask(prvdef.PRV_M_IMPORT),
+    "LOG_IO": PrvMask(prvdef.PRV_M_LOG_IO),
+    "MOUNT": PrvMask(prvdef.PRV_M_MOUNT),
+    "NETMBX": PrvMask(prvdef.PRV_M_NETMBX),
+    "OPER": PrvMask(prvdef.PRV_M_OPER),
+    "PFNMAP": PrvMask(prvdef.PRV_M_PFNMAP),
+    "PHY_IO": PrvMask(prvdef.PRV_M_PHY_IO),
+    "PRMCEB": PrvMask(prvdef.PRV_M_PRMCEB),
+    "PRMGBL": PrvMask(prvdef.PRV_M_SYSGBL),
+    "PRMMBX": PrvMask(prvdef.PRV_M_PRMMBX),
+    "PSWAPM": PrvMask(prvdef.PRV_M_PSWAPM),
+    "READALL": PrvMask(prvdef.PRV_M_READALL),
+    "SECURITY": PrvMask(prvdef.PRV_M_SECURITY),
+    "SETPRV": PrvMask(prvdef.PRV_M_SETPRV),
+    "SHARE": PrvMask(prvdef.PRV_M_SHARE),
+    "SHMEM": PrvMask(prvdef.PRV_M_SHMEM),
+    "SYSGBL": PrvMask(prvdef.PRV_M_SYSGBL),
+    "SYSLCK": PrvMask(prvdef.PRV_M_SYSLCK),
+    "SYSNAM": PrvMask(prvdef.PRV_M_SYSNAM),
+    "SYSPRV": PrvMask(prvdef.PRV_M_SYSPRV),
+    "TMPMBX": PrvMask(prvdef.PRV_M_TMPMBX),
+    "UPGRADE": PrvMask(prvdef.PRV_M_UPGRADE),
+    "VOLPRO": PrvMask(prvdef.PRV_M_VOLPRO),
+    "WORLD": PrvMask(prvdef.PRV_M_WORLD),
 }
 
 
 quotas: Dict[str, int] = {
@@ -99,21 +99,21 @@
 }
 
 
 quotas: Dict[str, int] = {
-    'ASTLM': pqldef.PQL__ASTLM,
-    'BIOLM': pqldef.PQL__BIOLM,
-    'BYTLM': pqldef.PQL__BYTLM,
-    'CPULM': pqldef.PQL__CPULM,
-    'DIOLM': pqldef.PQL__DIOLM,
-    'ENQLM': pqldef.PQL__ENQLM,
-    'FILLM': pqldef.PQL__FILLM,
-    'JTQUOTA': pqldef.PQL__JTQUOTA,
-    'PGFLQUOTA': pqldef.PQL__PGFLQUOTA,
-    'PRCLM': pqldef.PQL__PRCLM,
-    'TQELM': pqldef.PQL__TQELM,
-    'WSDEFAULT': pqldef.PQL__WSDEFAULT,
-    'WSEXTENT': pqldef.PQL__WSEXTENT,
-    'WSQUOTA': pqldef.PQL__WSQUOTA,
+    "ASTLM": pqldef.PQL__ASTLM,
+    "BIOLM": pqldef.PQL__BIOLM,
+    "BYTLM": pqldef.PQL__BYTLM,
+    "CPULM": pqldef.PQL__CPULM,
+    "DIOLM": pqldef.PQL__DIOLM,
+    "ENQLM": pqldef.PQL__ENQLM,
+    "FILLM": pqldef.PQL__FILLM,
+    "JTQUOTA": pqldef.PQL__JTQUOTA,
+    "PGFLQUOTA": pqldef.PQL__PGFLQUOTA,
+    "PRCLM": pqldef.PQL__PRCLM,
+    "TQELM": pqldef.PQL__TQELM,
+    "WSDEFAULT": pqldef.PQL__WSDEFAULT,
+    "WSEXTENT": pqldef.PQL__WSEXTENT,
+    "WSQUOTA": pqldef.PQL__WSQUOTA,
 }
 
 
@@ -133,14 +133,10 @@
 
 def auto_restart(
     value: str,
-) -> (
-    Type[RestartUnconditionally]
-    | Type[RestartWhenExitUnexpected]
-    | Literal[False]
-):
+) -> Type[RestartUnconditionally] | Type[RestartWhenExitUnexpected] | Literal[False]:
     value = str(value.lower())
     computed_value = value
     if value in TRUTHY_STRINGS:
         computed_value = RestartUnconditionally
     elif value in FALSY_STRINGS:
         computed_value = False
@@ -141,10 +137,10 @@
     value = str(value.lower())
     computed_value = value
     if value in TRUTHY_STRINGS:
         computed_value = RestartUnconditionally
     elif value in FALSY_STRINGS:
         computed_value = False
-    elif value == 'unexpected':
+    elif value == "unexpected":
         computed_value = RestartWhenExitUnexpected
     if computed_value not in (
         RestartWhenExitUnexpected,
@@ -243,5 +239,5 @@
     prv: PrvMask | None
     user: bytes
     process: ProcessInfo
-    running_processes: Dict[PidType, 'Program']
+    running_processes: Dict[PidType, "Program"]
     running_processes = dict()
@@ -247,7 +243,7 @@
     running_processes = dict()
-    programs: Dict[str, 'Program']
+    programs: Dict[str, "Program"]
     programs = dict()
     remain_startretries: int
     timer_item = TimerItem | None
     kill_request: bool
     autorestart: (
@@ -249,11 +245,9 @@
     programs = dict()
     remain_startretries: int
     timer_item = TimerItem | None
     kill_request: bool
     autorestart: (
-        Type[RestartUnconditionally]
-        | Type[RestartWhenExitUnexpected]
-        | Literal[False]
+        Type[RestartUnconditionally] | Type[RestartWhenExitUnexpected] | Literal[False]
     )
     exitcodes: List[int]
 
@@ -350,7 +344,7 @@
 
         try:
             v = lib.get_logical(
-                self.process_name + b'_PID',
+                self.process_name + b"_PID",
                 supervisord_table_name,
             )[1]
             pid = PidType(int(v, 16))
@@ -456,8 +450,8 @@
                     f"Can' create process {self.process_name}, error {error}"
                 )
         lib.set_logical(
-            self.process_name + b'_PID',
+            self.process_name + b"_PID",
             hex(pid)[2:].upper(),
             supervisord_table_name,
         )
         lib.set_logical(
@@ -460,9 +454,9 @@
             hex(pid)[2:].upper(),
             supervisord_table_name,
         )
         lib.set_logical(
-            self.process_name + b'_RUN',
-            b'1',
+            self.process_name + b"_RUN",
+            b"1",
             supervisord_table_name,
         )
 
@@ -478,9 +472,9 @@
             )
         Program.running_processes[PidType(pid)] = self
         lib.set_logical(
-            self.process_name + b'_BEG',
+            self.process_name + b"_BEG",
             str(self.process.start_time)[:19],
             supervisord_table_name,
         )
         try:
             lib.delete_logical(
@@ -482,12 +476,12 @@
             str(self.process.start_time)[:19],
             supervisord_table_name,
         )
         try:
             lib.delete_logical(
-                self.process_name + b'_END',
+                self.process_name + b"_END",
                 supervisord_table_name,
             )
         except OSError:
             pass
 
         logging.info(
@@ -488,10 +482,10 @@
                 supervisord_table_name,
             )
         except OSError:
             pass
 
         logging.info(
-            f'Process {self.process_name.decode()} created {hex(pid)[2:].upper()}'
+            f"Process {self.process_name.decode()} created {hex(pid)[2:].upper()}"
         )
 
     def kill(self):
@@ -536,8 +530,7 @@
         # Bits 0--2 contain the severity level of the message.
         # Bits 3--15 contain the number of the corresponding message.
         # Bits 16--27 contain a number for the software component, or facility, that generated the message.
-        # Bits 28--31 contain internal control flags. 
-
+        # Bits 28--31 contain internal control flags.
 
         finalsts = finalsts & 0xFFFF
         self.process.finalsts = finalsts
@@ -547,8 +540,8 @@
             self.timer_item.cancel = True
             self.timer_item = None
         lib.set_logical(
-            self.process_name + b'_RUN',
-            b'0',
+            self.process_name + b"_RUN",
+            b"0",
             supervisord_table_name,
         )
         lib.set_logical(
@@ -552,7 +545,7 @@
             supervisord_table_name,
         )
         lib.set_logical(
-            self.process_name + b'_END',
+            self.process_name + b"_END",
             str(end_time)[:22],
             supervisord_table_name,
         )
@@ -561,13 +554,9 @@
             self.timer_item = TimerItem(TimerItemType.PROC_BACKOFF, self)
             timer_queue.put(
                 PrioritizedItem(
-                    5
-                    + current_tick
-                    + self.startretries
-                    - self.remain_startretries
-                    + 1,
+                    5 + current_tick + self.startretries - self.remain_startretries + 1,
                     self.timer_item,
                 )
             )
         else:
             self.process.state = (
@@ -569,11 +558,9 @@
                     self.timer_item,
                 )
             )
         else:
             self.process.state = (
-                ProcessStates.STOPPED
-                if self.kill_request
-                else ProcessStates.EXITED
+                ProcessStates.STOPPED if self.kill_request else ProcessStates.EXITED
             )
 
 
@@ -583,7 +570,7 @@
         attr=lnmdef.LNM_M_CREATE_IF,
         promsk=0xE000,
         tabnam=supervisord_table_name,
-        partab=b'LNM$SYSTEM_DIRECTORY',
+        partab=b"LNM$SYSTEM_DIRECTORY",
         acmode=psldef.PSL_C_SUPER,
     )
     lib.set_logical(
@@ -587,5 +574,5 @@
         acmode=psldef.PSL_C_SUPER,
     )
     lib.set_logical(
-        b'LNM$PERMANENT_MAILBOX',
+        b"LNM$PERMANENT_MAILBOX",
         supervisord_table_name,
@@ -591,7 +578,7 @@
         supervisord_table_name,
-        b'LNM$PROCESS_DIRECTORY',
+        b"LNM$PROCESS_DIRECTORY",
     )
 
 
 def mbx_init() -> Tuple[int, int, int]:
     global logger
@@ -593,8 +580,8 @@
     )
 
 
 def mbx_init() -> Tuple[int, int, int]:
     global logger
-    logger.info('Creating mailbox')
+    logger.info("Creating mailbox")
     s, chan = starlet.crembx(
         prmflg=1,
@@ -599,6 +586,6 @@
     s, chan = starlet.crembx(
         prmflg=1,
-        lognam='SUPERVISORD_MBX',
+        lognam="SUPERVISORD_MBX",
         maxmsg=accdef.ACC_K_TERMLEN,
         bufquo=1024 * 64,
         promsk=0x0000FF00,
@@ -610,10 +597,10 @@
 
     s, chancmd = starlet.crembx(
         prmflg=1,
-        lognam='SUPERVISORD_CMD',
+        lognam="SUPERVISORD_CMD",
         maxmsg=2048,
         bufquo=8192,
         promsk=0x0000FF00,
         acmode=psldef.PSL_C_USER,
         flags=cmbdef.CMB_M_READONLY,
     )
@@ -614,11 +601,11 @@
         maxmsg=2048,
         bufquo=8192,
         promsk=0x0000FF00,
         acmode=psldef.PSL_C_USER,
         flags=cmbdef.CMB_M_READONLY,
     )
-    logger.info(f'Mailbox created {mbxunt}')
-    return chan, mbxunt, chancmd   # , chancmd_r
+    logger.info(f"Mailbox created {mbxunt}")
+    return chan, mbxunt, chancmd  # , chancmd_r
 
 
 class AstParam(object):
@@ -656,7 +643,7 @@
         jscmd = json.dumps(cmdreply)
         try:
             fcmd_r.write(
-                jscmd.encode('ascii'),
+                jscmd.encode("ascii"),
                 iodef.IO_M_READERCHECK | iodef.IO_M_NOW,
             )
         except OSError:
@@ -666,7 +653,7 @@
 def dispatch_cmd(res: bytes):
     global supervisorctl_pwd
     jscmd = json.loads(res)
-    pwd = jscmd['pwd']
-    jscmd['pwd'] = '*****'
-    fcmd_r = jscmd['mbxreply']
+    pwd = jscmd["pwd"]
+    jscmd["pwd"] = "*****"
+    fcmd_r = jscmd["mbxreply"]
     if pwd != supervisorctl_pwd:
@@ -672,5 +659,5 @@
     if pwd != supervisorctl_pwd:
-        logging.info('Invalid password')
-        send_cmd_reply(fcmd_r, {'error': 'Invalid password'})
+        logging.info("Invalid password")
+        send_cmd_reply(fcmd_r, {"error": "Invalid password"})
 
         return
@@ -675,6 +662,6 @@
 
         return
-    match jscmd['cmd'].lower():
-        case 'shutdown':
-            send_cmd_reply(fcmd_r, {'result': None})
+    match jscmd["cmd"].lower():
+        case "shutdown":
+            send_cmd_reply(fcmd_r, {"result": None})
             exit(1)
@@ -680,7 +667,7 @@
             exit(1)
-        case 'start':
-            pgmnames = set([name.upper() for name in jscmd['programs']])
-            if 'ALL' in pgmnames:
+        case "start":
+            pgmnames = set([name.upper() for name in jscmd["programs"]])
+            if "ALL" in pgmnames:
                 for pgm in Program.programs.values():
                     if pgm.process.state == ProcessStates.FATAL:
                         pgm.process.state = ProcessStates.STOPPED
@@ -693,13 +680,13 @@
                             pgm.process.state = ProcessStates.STOPPED
                             pgm.remain_startretries = pgm.startretries + 1
                         pgm.create_process(False)
-            send_cmd_reply(fcmd_r, {'result': None})
-        case 'stop':
-            pgmnames = set([name.upper() for name in jscmd['programs']])
-            if 'ALL' in pgmnames:
+            send_cmd_reply(fcmd_r, {"result": None})
+        case "stop":
+            pgmnames = set([name.upper() for name in jscmd["programs"]])
+            if "ALL" in pgmnames:
                 for pgm in Program.programs.values():
                     pgm.kill()
             else:
                 for pgm in Program.programs.values():
                     if pgm.name in pgmnames:
                         pgm.kill()
@@ -700,15 +687,15 @@
                 for pgm in Program.programs.values():
                     pgm.kill()
             else:
                 for pgm in Program.programs.values():
                     if pgm.name in pgmnames:
                         pgm.kill()
-            send_cmd_reply(fcmd_r, {'result': None})
-        case 'status':
-            pgmnames = set([name.upper() for name in jscmd['programs']])
+            send_cmd_reply(fcmd_r, {"result": None})
+        case "status":
+            pgmnames = set([name.upper() for name in jscmd["programs"]])
             lst = []
             for pgm in Program.programs.values():
                 if pgmnames and pgm.name not in pgmnames:
                     continue
                 lst.append(
                     [
@@ -709,10 +696,10 @@
             lst = []
             for pgm in Program.programs.values():
                 if pgmnames and pgm.name not in pgmnames:
                     continue
                 lst.append(
                     [
-                        pgm.process_name.decode('ascii'),
+                        pgm.process_name.decode("ascii"),
                         hex(pgm.process.pid)[2:].upper(),
                         str(pgm.process.start_time)[:19],
                         pgm.process.state,
@@ -727,7 +714,7 @@
                     lst[-1].append(str(pgm.process.end_time)[:19])
                     lst[-1].append(pgm.process.finalsts)
 
-            send_cmd_reply(fcmd_r, {'result': lst})
+            send_cmd_reply(fcmd_r, {"result": lst})
 
 
 def dispatch_ast(astparam: AstParam):
@@ -745,9 +732,9 @@
                 acc = accdef.ACCDEF.parse(res)
                 print(acc)
                 logging.info(
-                    f'Program {pgm.name} '
-                    f'terminated {hex(pid)[2:].upper()}, '
-                    f'{acc.acc_l_finalsts & 0xEFFFFFFF}'
+                    f"Program {pgm.name} "
+                    f"terminated {hex(pid)[2:].upper()}, "
+                    f"{acc.acc_l_finalsts & 0xEFFFFFFF}"
                 )
                 pgm.set_terminated(acc.acc_l_finalsts, acc.acc_q_termtime)
                 # if not stsdef.vms_status_success(acc.acc_l_finalsts):
@@ -794,9 +781,7 @@
         t_astctxt = qio_procterm(fterm)  # noqa: F841
         c_astctxt = qio_cmd(fcmd)  # noqa: F841
 
-        for pgm in sorted(
-            Program.programs.values(), key=lambda pgm: pgm.priority
-        ):
+        for pgm in sorted(Program.programs.values(), key=lambda pgm: pgm.priority):
             if pgm.autostart:
                 pgm.create_process(False)
 
@@ -807,8 +792,8 @@
         while True:
             ret_ast_context: vmsast.AstContext
 
-            ret_ast_context = vmsast.get_completed(True)   # type:ignore
-            astparam = ret_ast_context.param   # type: ignore
+            ret_ast_context = vmsast.get_completed(True)  # type:ignore
+            astparam = ret_ast_context.param  # type: ignore
             iosb = astparam.iosb
             if iosb and iosb.iosb_w_status == ssdef.SS__ENDOFFILE:
                 if astparam.ptype == AstParamType.PROCTERM:
@@ -834,7 +819,7 @@
 def is_deamon() -> bool:
     try:
         pid = lib.get_logical(
-            b'SUPERVISORD' + b'_PID',
+            b"SUPERVISORD" + b"_PID",
             supervisord_table_name,
         )[1]
         cpid = lib.getjpi(jpidef.JPI__PID)[3]
@@ -848,7 +833,7 @@
 def daemon_is_running() -> bool:
     try:
         v = lib.get_logical(
-            b'SUPERVISORD' + b'_PID',
+            b"SUPERVISORD" + b"_PID",
             supervisord_table_name,
         )[1]
         pid = int(v, 16)
@@ -877,6 +862,6 @@
 
         pid = PidType(
             starlet.creprc(
-                image=b'SYS$SYSTEM:LOGINOUT.EXE',
+                image=b"SYS$SYSTEM:LOGINOUT.EXE",
                 input=comdaemon.encode(),
                 output=stdout_file.encode(),
@@ -881,9 +866,9 @@
                 input=comdaemon.encode(),
                 output=stdout_file.encode(),
-                prcnam=b'SUPERVISORD',
+                prcnam=b"SUPERVISORD",
                 kt_limit=1,
                 baspri=4,
                 stsflg=stsflg,
             )[1]
         )
         lib.set_logical(
@@ -884,10 +869,10 @@
                 kt_limit=1,
                 baspri=4,
                 stsflg=stsflg,
             )[1]
         )
         lib.set_logical(
-            b'SUPERVISORD' + b'_PID',
+            b"SUPERVISORD" + b"_PID",
             hex(pid)[2:].upper(),
             supervisord_table_name,
         )
@@ -917,5 +902,5 @@
         | prvdef.PRV_M_WORLD,
     )
 
-    parser = argparse.ArgumentParser(description='supervisord')
+    parser = argparse.ArgumentParser(description="supervisord")
     parser.add_argument(
@@ -921,8 +906,8 @@
     parser.add_argument(
-        '-c',
-        '--configuration',
-        type=argparse.FileType('r', encoding='latin1'),
-        default='./supervisord.conf',
-        help='Configuration file path (default ./supervisord.conf)',
+        "-c",
+        "--configuration",
+        type=argparse.FileType("r", encoding="latin1"),
+        default="./supervisord.conf",
+        help="Configuration file path (default ./supervisord.conf)",
     )
     parser.add_argument(
@@ -927,6 +912,6 @@
     )
     parser.add_argument(
-        '-p',
-        '--password',
+        "-p",
+        "--password",
         required=False,
         type=str,
@@ -931,6 +916,6 @@
         required=False,
         type=str,
-        default='',
-        help='Password for supervisord',
+        default="",
+        help="Password for supervisord",
     )
     parser.add_argument(
@@ -935,9 +920,9 @@
     )
     parser.add_argument(
-        '-n',
-        '--nodaemon',
-        action='store_true',
-        help='Run supervisord in the foreground',
+        "-n",
+        "--nodaemon",
+        action="store_true",
+        help="Run supervisord in the foreground",
     )
     args = parser.parse_args()
     supervisorctl_pwd = args.password
@@ -946,8 +931,6 @@
     config.read_file(args.configuration)
     args.configuration.close()
 
-    nodaemon = (
-        config['supervisord'].getboolean('nodaemon', False) or args.nodaemon
-    )
+    nodaemon = config["supervisord"].getboolean("nodaemon", False) or args.nodaemon
     logicals_init()
     if not nodaemon and not is_deamon():
@@ -952,7 +935,7 @@
     logicals_init()
     if not nodaemon and not is_deamon():
-        usrdaemon = config['supervisord'].get('user', 'system')
-        stdout_file = config['supervisord'].get('stdout_file', 'NLA0:')
-        comdaemon = config['supervisord']['command']
+        usrdaemon = config["supervisord"].get("user", "system")
+        stdout_file = config["supervisord"].get("stdout_file", "NLA0:")
+        comdaemon = config["supervisord"]["command"]
         pid = daemonize(usrdaemon, comdaemon, stdout_file)
         if pid is None:
@@ -957,4 +940,4 @@
         pid = daemonize(usrdaemon, comdaemon, stdout_file)
         if pid is None:
-            print('Unable to start supervisord daemon')
+            print("Unable to start supervisord daemon")
         else:
@@ -960,4 +943,4 @@
         else:
-            print(f'Daemon started {hex(pid)[2:].upper()}')
+            print(f"Daemon started {hex(pid)[2:].upper()}")
         exit(0)
 
@@ -962,4 +945,4 @@
         exit(0)
 
-    logfile = config['supervisord'].get('logfile', 'supervisord.log')
+    logfile = config["supervisord"].get("logfile", "supervisord.log")
 
@@ -965,10 +948,8 @@
 
-    logging_format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
-    logging.basicConfig(
-        filename='/dev/null', level=logging.INFO, format=logging_format
-    )
+    logging_format = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
+    logging.basicConfig(filename="/dev/null", level=logging.INFO, format=logging_format)
     formatter = logging.Formatter(logging_format)
     main_log = logging.getLogger()  # root handler
     main_log.setLevel(logging.INFO)
     logfn = crtl.from_vms(logfile)
     if logfn is None:
@@ -970,8 +951,8 @@
     formatter = logging.Formatter(logging_format)
     main_log = logging.getLogger()  # root handler
     main_log.setLevel(logging.INFO)
     logfn = crtl.from_vms(logfile)
     if logfn is None:
-        print(f'{repr(logfile)} is invalid')
+        print(f"{repr(logfile)} is invalid")
         crtl.vms_exit(ssdef.SS__INVARG)
     handler = logging.handlers.TimedRotatingFileHandler(
@@ -976,8 +957,8 @@
         crtl.vms_exit(ssdef.SS__INVARG)
     handler = logging.handlers.TimedRotatingFileHandler(
-        logfn, 'midnight', backupCount=10
+        logfn, "midnight", backupCount=10
     )
     handler.setFormatter(formatter)
     main_log.addHandler(handler)
 
     for sn in config.sections():
@@ -979,7 +960,7 @@
     )
     handler.setFormatter(formatter)
     main_log.addHandler(handler)
 
     for sn in config.sections():
-        if sn.startswith('program:'):
+        if sn.startswith("program:"):
             quotaslst = [
@@ -985,8 +966,8 @@
             quotaslst = [
-                quota.strip().upper().split('=')
-                for quota in config[sn].get('quotas', '').split(',')
-                if quota != ''
+                quota.strip().upper().split("=")
+                for quota in config[sn].get("quotas", "").split(",")
+                if quota != ""
             ]
             prcquotas = []
             for quotan, quotav in quotaslst:
                 if quotan not in quotas:
@@ -989,6 +970,6 @@
             ]
             prcquotas = []
             for quotan, quotav in quotaslst:
                 if quotan not in quotas:
-                    print(f'{sn}: {quotan}={quotav} not a valid quota')
+                    print(f"{sn}: {quotan}={quotav} not a valid quota")
                     crtl.vms_exit(ssdef.SS__INVARG)
@@ -994,5 +975,5 @@
                     crtl.vms_exit(ssdef.SS__INVARG)
-                if quotan == 'CPULM':
+                if quotan == "CPULM":
                     quotav = int(quotav) * 100
                 prcquotas.append((quotas[quotan], int(quotav)))
             if prcquotas == []:
@@ -1000,10 +981,10 @@
 
             prvnames = [
                 name.strip().upper()
-                for name in config[sn].get('privileges', '').split(',')
-                if name != ''
+                for name in config[sn].get("privileges", "").split(",")
+                if name != ""
             ]
             prv: PrvMask | None
             prv = None
             for prvnam in prvnames:
                 if prvnam not in privileges:
@@ -1005,9 +986,9 @@
             ]
             prv: PrvMask | None
             prv = None
             for prvnam in prvnames:
                 if prvnam not in privileges:
-                    print(f'{sn}: {prvnam} not a valid privilege')
+                    print(f"{sn}: {prvnam} not a valid privilege")
                     crtl.vms_exit(ssdef.SS__INVARG)
                 prv = (
                     privileges[prvnam]
@@ -1015,25 +996,23 @@
                     else PrvMask(prv | privileges[prvnam])
                 )
 
-            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')
-            stdout_file = config[sn].get('stdout_file', 'NLA0:')
-            stderr_file = config[sn].get('stderr_file', 'NLA0:')
-            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)
-            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(',')
-            user = config[sn]['user']
+            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")
+            stdout_file = config[sn].get("stdout_file", "NLA0:")
+            stderr_file = config[sn].get("stderr_file", "NLA0:")
+            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)
+            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(",")
+            user = config[sn]["user"]
             if prv is not None or quotaslst is not None:
                 nouaf = True
             p = Program(
@@ -1055,9 +1034,7 @@
                 prv=prv,
                 baspri=baspri,
                 kt_limit=kt_limit,
-                exitcodes=[
-                    int(exitcode) for exitcode in exitcodes if exitcode != ''
-                ],
+                exitcodes=[int(exitcode) for exitcode in exitcodes if exitcode != ""],
             )
             Program.programs[name] = p
 
@@ -1065,5 +1042,5 @@
     run(chan, chancmd)
 
 
-if __name__ == '__main__':
+if __name__ == "__main__":
     main()