systemctl-isolate
TLDR
Switch to a target (assumed .target if no extension provided)
Switch to graphical target explicitly
Switch to rescue (single-user) mode
Switch to emergency mode
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)


