Process Manager

Distributed process panel: start/stop background processes grouped as Servers/Driver/GUI/Viewer/Monitor.

Overview

quatm/GUI/entries/processmanager.py provides the process manager: it reads the configuration grouped as Servers / Driver / GUI / Viewer / Monitor and generates a SingleProcess start/stop button panel for every script entry, managing the whole set of experiment-software processes in one place. A process is started with the current interpreter, either as a script or as a module (python -m), and carries the project root and the parent-process watchdog environment.

Components

ComponentDescription
ProcessManagerCategory panel: reads the configuration and generates a start/stop button for every entry
SingleProcessSingle-entry panel: start / asynchronous termination / status polling colouring

Key methods (SingleProcess)

MethodDescription
startProcessStops the old instance, then starts the child process with the current interpreter
stopProcessTerminates the child process asynchronously without blocking the GUI thread
updateStatusPeriodically polls the exit status and colours it (running / exited / crashed)

Usage

from quatm.GUI.entries.processmanager import ProcessManager

pm = ProcessManager(parent=parent)
pm.show()

For a fuller description see Process manager.