LinuxCommandLibrary

systemctl-isolate

TLDR

Switch to a target (assumed .target if no extension provided)

$ systemctl isolate [target]
copy

Switch to graphical target explicitly
$ systemctl isolate graphical.target
copy

Switch to rescue (single-user) mode
$ systemctl isolate rescue.target
copy

Switch to emergency mode
$ systemctl isolate emergency.target
copy

SYNOPSIS

systemctl [OPTIONS...] isolate target.target

PARAMETERS

target.target
    The target unit to isolate to (e.g., multi-user.target, graphical.target, rescue.target).

--quiet
    Suppress most output; only errors are shown.

--no-block
    Do not wait for the isolation transaction to finish before returning.

--system
    Operate on the system manager (default when run as root).

--user
    Operate on the user manager instead of the system manager.

DESCRIPTION

The systemctl isolate command changes the current system state by starting a given systemd target and stopping all units that are not part of that target’s dependency tree. A target in systemd plays the role of a traditional runlevel but offers far more granularity, allowing administrators to move the machine into modes such as multi‑user, graphical, rescue, or custom maintenance states. When the command is executed, systemd evaluates the dependencies of the requested target, activates them, and immediately isolates the system by terminating services that are not required. This makes systemctl isolate useful for rapid transitions during troubleshooting, for entering a minimal environment before a reboot, or for preparing a system for a specific workload. Isolation is only permitted for targets that have AllowIsolate=yes set in their unit files; otherwise the command will fail.

CAVEATS

Isolation works only for targets that explicitly enable it with AllowIsolate=yes. Using the command on a target without this flag will result in an error. Because the command stops services not required by the new target, it may terminate the current session (including the terminal you are using), so it is often run via a remote console or with sudo.

EXAMPLES


Switch to multi‑user mode (runlevel 3):
sudo systemctl isolate multi-user.target

Switch to graphical mode (runlevel 5):
sudo systemctl isolate graphical.target

Enter rescue (single‑user) mode:
sudo systemctl isolate rescue.target

HISTORY

The systemctl isolate sub‑command was introduced early in the development of systemd (around version 31) as a replacement for traditional runlevel changes. It leverages systemd’s unit dependency model to provide a deterministic, fast transition between system states. Over successive releases the command has remained stable, with added support for global options like --quiet and --no-block that mirror those of other systemctl actions.

SEE ALSO

systemctl(1), systemd.unit(5), systemd.target(5)

Copied to clipboard