Priority Groups
Commands run in ascending ordered priority groups, with parallelism per group for faster shutdown windows.
terminusd is a lightweight shutdown inhibitor daemon that gives you precise control over shutdowns, reboots, and poweroffs. Build a priority-based workflow for what runs before the system goes down, block or allow reboot activity based on your criteria, and apply updates and patches safely while services are still available.
Built for those who need reliable control of shutdown, reboot, and poweroff orchestration without heavyweight tooling. You get deterministic order of actions, safe package upgrades, coordinated cluster failover, and guardrails against accidental reboots - all with a simple config and clear logs. All before systemd even enters shutdown state.
Commands run in ascending ordered priority groups, with parallelism per group for faster shutdown windows.
Mark essential steps as critical. A failure on any critical task halts later groups, preventing half-finished maintenance.
Easily drop configuration into /etc/terminus.d making it simple to manage and configure with any configuration management.
Enable/Disable shutdowns and reboots based on your own criteria, preventing accidental system interruptions. Even by root.
Run tasks as specific users/groups, each with their own environment specifications.
Preview the full shutdown plan without executing anything in test mode before rollout, so production behavior is understandable in advance.
terminusd acquires a systemd delay inhibitor lock and listens for shutdown signals over D-Bus. When a shutdown is
requested, it holds systemd in a pre-shutdown state so service control and normal operations are still available while
your workflow runs.
During that window, terminusd executes scripts, commands, or binaries in ordered priority groups, with optional critical
gating. If a critical task fails, later groups do not run, preventing half-finished maintenance.
Once execution is complete, the inhibitor is released and shutdown proceeds cleanly.
The shutdown guard lets you dynamically allow or block shutdowns, reboots, and poweroffs through normal system
commands, even for root. Use a custom script or binary to drive that state based on your own conditions,
either through scheduled checks with configurable thresholds or by continuously monitoring and signaling
terminusd directly.
Prevent accidental reboots during BCP or critical maintenance windows, and reduce outage risk by ensuring shutdowns
only happen when your environment is truly ready.
terminusctl is the companion control client for terminusd, built for live operational control without
editing configuration files or restarting the daemon.
Check current state, manage shutdown controls, enable or disable the shutddown guard and reload configuration on the fly.
See configured delays, live logind inhibitor alignment, guard state and the full ordered shutdown execution plan.
Enable or disable the shutdown guard without touching config files or restarting the daemon.
Push the daemon's configured inhibit delay into logind.conf on demand, keeping systemd and terminusd in sync without a manual edit.
terminusd fits anywhere shutdown timing matters. These are a few practical ways to use it in real environments.
Install packages and apply updates while system services are still available, so maintenance can finish cleanly before shutdown continues.
Run failover and service migration steps in a controlled order, making sure workloads move cleanly before a node goes down.
Block accidental reboots during BCP or degraded HA conditions, reducing the chance of turning a bad state into a full outage.