Sessions & Job Monitor
Odatix runs fmax, synth, sim and workflow through a background daemon. Jobs are enqueued into a session, then monitored either immediately (default) or later (detached mode). A Job Monitor shows every job’s progress and logs live, and lets you start, pause, resume or kill jobs at any time.
Table of Contents
Sessions
A session is a set of jobs handed over to the daemon by a single run command. The daemon owns the session: it schedules the jobs, runs a limited number of them in parallel, and keeps them alive whether or not a monitor is attached. Closing a monitor does not stop the jobs — only stopping the session does.
Each session has an ID of the form <pid>.<name> (e.g. 12345.nightly), and can be attached, detached and re-attached freely, from the terminal or from the browser.
Default behavior
Without -d/--detach, a run command enqueues its jobs in a new session and immediately attaches the terminal Job Monitor:
odatix fmax --tool vivado
Detached sessions
Use detached mode with -d/--detach to start jobs and return to the shell immediately.
odatix fmax --tool vivado -d
Session naming
When using a run command, you can give the session a meaningful name with -S:
odatix fmax --tool vivado -d -S nightly
The same pattern applies to odatix synth, odatix sim and odatix workflow commands.
Inspect and attach
odatix ls # list active sessions
odatix ls -S nightly # filter with a selector
odatix monitor -S nightly # re-attach the monitor to a session
Session selectors
The -S/--session selector can match a full session ID (e.g. 12345.nightly), a session name, a name prefix, or a PID. If several sessions match, Odatix asks you to refine the selector.
Stop sessions
odatix stop -S nightly # stop one session
odatix stop --all # stop every session
Two equivalent monitors
Odatix ships two Job Monitors, and they are interchangeable: both talk to the same daemon through the same API, show the same jobs with the same progress and the same logs, and offer the same controls (start, pause, resume, kill, and the number of jobs running in parallel).
| Terminal monitor | GUI monitor | |
|---|---|---|
| Command | odatix monitor |
odatix-gui monitor |
| Interface | curses, in your terminal | web page, in your browser |
| Works over SSH | ✅ directly | ✅ via port forwarding |
| Job list, live logs, progress | ✅ | ✅ |
| Start / pause / kill jobs | ✅ | ✅ |
| Change parallel job count | ✅ | ✅ |
| Filter and sort the job list | ❌ | ✅ |
| Mouse and keyboard driven | ✅ | mouse driven |
Because there is a single daemon behind both interfaces, a run launched from the terminal is visible in the GUI and vice versa, and you can switch from one to the other in the middle of a run.
Pick whichever fits the moment:
- Terminal monitor — the default when you launch a run from the command line, and the fastest option on a remote machine you reach over SSH.
- GUI monitor — richer view with filtering, sorting and layout modes, and the natural choice when you are already using the Odatix GUI.
Duplicate scheduling policy
When preparing jobs, Odatix checks active daemon jobs that target the same work directory:
- If a matching job is in
failed,killed,canceledorcancelled, it is re-enqueued. - Otherwise the new job is skipped — it is already managed by a session.
This prevents accidental duplicate runs while still allowing a fast restart of failed jobs. It is visible in the preparation logs.