LinuxCommandLibrary

systemctl-list-jobs

List current systemd jobs

TLDR

List all active jobs

$ systemctl list-jobs
copy

Filter jobs for a specific unit
$ systemctl list-jobs [unit]
copy

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.

SEE ALSO

Copied to clipboard