systemctl-list-jobs
List current systemd jobs
TLDR
List all active jobs
Filter jobs for a specific unit
SYNOPSIS
systemctl list-jobs [OPTIONS]
PARAMETERS
--no-pager
Do not pipe output into a pager. This is useful for scripting or when output needs to be redirected.
--no-legend
Do not print the column headers (legend) in the output. Useful for clean, machine-readable output.
--all
Show all items. For jobs, this generally means showing all currently active/pending jobs.
--full
Do not abbreviate (ellipsize) unit names in the output, showing their full names.
--plain
Show output in a plain, machine-readable format, suppressing visual enhancements like colors or borders.
--output=MODE
Format the output according to the specified mode. Common modes include short (default), verbose, or json for programmatic parsing.
-h, --help
Display a short help text and exit.
DESCRIPTION
The systemctl list-jobs command displays a comprehensive list of currently active or pending systemd jobs. In systemd, a 'job' represents a specific operation or transaction that the system manager is executing or waiting to execute on a unit, such as starting, stopping, reloading, or restarting it. When a request to change a unit's state is issued, systemd creates a job to manage the process, including handling dependencies.
This command is invaluable for diagnosing system behavior, especially when units appear stuck, dependencies are preventing operations, or during boot processes. It provides insights into what systemd is actively working on or queuing. The output typically includes the job ID, the type of operation (e.g., 'start', 'stop'), the target unit's name, the job's current state (e.g., 'running', 'waiting'), and a descriptive summary. Monitoring these jobs helps administrators understand the flow of systemd operations and troubleshoot potential issues within the service management layer.
CAVEATS
The list-jobs command only displays currently active or pending jobs. Once a job completes (successfully or unsuccessfully), it is removed from this list. Therefore, it does not provide a historical record of all operations. Jobs are transient, reflecting only the immediate state of systemd's transaction engine. Understanding the output, especially 'waiting' states, often requires knowledge of unit dependencies.
INTERPRETING JOB OUTPUT
The output of systemctl list-jobs typically consists of several columns: JOB ID (a unique identifier for the job), TYPE (the operation, e.g., 'start', 'stop', 'reload'), UNIT (the name of the unit affected), STATE (the job's current status, e.g., 'running', 'waiting'), and DESCRIPTION (a brief explanation of the job). A 'waiting' state often indicates that the job is stalled due to unmet dependencies or a conflicting operation.
HISTORY
The systemctl command is an integral part of systemd, which was introduced as a replacement for the traditional SysVinit daemon in Linux. Systemd's development began around 2010, and it quickly became the default init system for many major Linux distributions. The concept of 'jobs' is fundamental to systemd's design, enabling transactional unit management and parallel execution of services. The list-jobs subcommand has been a core diagnostic tool since early systemd versions, providing visibility into the active operations managed by the system and facilitating debugging of service startup and shutdown sequences.


