Systemd is manager of everything in Linux.
systemctl is the main management tool (give order, ask questions) for systemd.
Unit is a configuration text file that defines how process work.
The unit file is ending in .service, .socket, .timer, etc.
List all currently active units.
Press q to exit
systemctl or systemctl list-units
Displays a complete list of all valid unit types available in the system.
-t stands for type.
systemctl -t help
Filters the active unit list
systemctl list-units -t [Type in 2.]
Example: systemctl list-units -t timer
Lists all unit files installed on the hard drive, regardless of whether they are currently active or running.
Press q to exit
systemctl list-unit-files
Lists specific unit files installed on the hard drive, regardless of whether they are currently active or running.
systemctl list-units-files -t [Type]
Press q to exit
systemctl list-unit-files -t service
Result
student@localhost:~$ systemctl
UNIT LOAD ACTIVE SUB DESCRIPTION >
proc-sys-fs-binfmt_misc.automount loaded active waiting Arbitrary Executable File Formats File Sy>
sys-devices-pci0000:00-0000:00:01.1-ata1-host0-target0:0:0-0:0:0:0-block-sr0.device loaded active plugged VBOX_CD-ROM
sys-devices-pci0000:00-0000:00:03.0-net-enp0s3.device loaded active plugged 82540EM Gigabit Ethernet Controller (PRO/>
sys-devices-pci0000:00-0000:00:05.0-sound-card0-controlC0.device loaded active plugged /sys/devices/pci0000:00/0000:00:05.0/soun>
sys-devices-pci0000:00-0000:00:0d.0-ata3-host2-target2:0:0-2:0:0:0-block-sda-sda1.device loaded active plugged VBOX_HARDDISK 1
sys-devices-pci0000:00-0000:00:0d.0-ata3-host2-target2:0:0-2:0:0:0-block-sda-sda2.device loaded active plugged VBOX_HARDDISK 2
sys-devices-pci0000:00-0000:00:0d.0-ata3-host2-target2:0:0-2:0:0:0-block-sda-sda3.device loaded active plugged VBOX_HARDDISK 3
sys-devices-pci0000:00-0000:00:0d.0-ata3-host2-target2:0:0-2:0:0:0-block-sda.device loaded active plugged VBOX_HARDDISK
sys-devices-platform-serial8250-serial8250:0-serial8250:0.0-tty-ttyS0.device loaded active plugged /sys/devices/platform/serial8250/serial82>
sys-devices-platform-serial8250-serial8250:0-serial8250:0.1-tty-ttyS1.device loaded active plugged /sys/devices/platform/serial8250/serial82>
sys-devices-platform-serial8250-serial8250:0-serial8250:0.2-tty-ttyS2.device loaded active plugged /sys/devices/platform/serial8250/serial82>
sys-devices-platform-serial8250-serial8250:0-serial8250:0.3-tty-ttyS3.device loaded active plugged /sys/devices/platform/serial8250/serial82>
sys-devices-virtual-block-dm\x2d0.device loaded active plugged /sys/devices/virtual/block/dm-0
sys-devices-virtual-block-dm\x2d1.device loaded active plugged /sys/devices/virtual/block/dm-1
sys-devices-virtual-misc-rfkill.device loaded active plugged /sys/devices/virtual/misc/rfkill
sys-module-configfs.device loaded active plugged /sys/module/configfs
sys-module-fuse.device loaded active plugged /sys/module/fuse
sys-subsystem-net-devices-enp0s3.device loaded active plugged 82540EM Gigabit Ethernet Controller (PRO/>
-.mount loaded active mounted Root Mount
boot.mount loaded active mounted /boot
dev-hugepages.mount loaded active mounted Huge Pages File System
dev-mqueue.mount loaded active mounted POSIX Message Queue File System
run-user-1000-doc.mount loaded active mounted /run/user/1000/doc
run-user-1000-gvfs.mount loaded active mounted /run/user/1000/gvfs
run-user-1000.mount loaded active mounted /run/user/1000
sys-fs-fuse-connections.mount loaded active mounted FUSE Control File System
sys-kernel-config.mount loaded active mounted Kernel Configuration File System
sys-kernel-debug.mount loaded active mounted Kernel Debug File System
sys-kernel-tracing.mount loaded active mounted Kernel Trace File System >
cups.path loaded active running CUPS Scheduler
systemd-ask-password-plymouth.path loaded active waiting Forward Password Requests to Plymouth Dir>
systemd-ask-password-wall.path loaded active waiting Forward Password Requests to Wall Directo>
init.scope loaded active running System and Service Manager
session-2.scope loaded active running Session 2 of User student >
accounts-daemon.service loaded active running Accounts Service
student@localhost:~$ systemctl -t help
Available unit types:
service
mount
swap
socket
target
device
automount
timer
path
slice
scope
student@localhost:~$ systemctl list-units -t timer
UNIT LOAD ACTIVE SUB DESCRIPTION
dnf-makecache.timer loaded active waiting dnf makecache --timer
fstrim.timer loaded active waiting Discard unused filesystem blocks once a week
fwupd-refresh.timer loaded active waiting Refresh fwupd metadata regularly
logrotate.timer loaded active waiting Daily rotation of log files
plocate-updatedb.timer loaded active waiting Update the plocate database daily
raid-check.timer loaded active waiting Weekly RAID setup health check
systemd-tmpfiles-clean.timer loaded active waiting Daily Cleanup of Temporary Directories
Legend: LOAD → Reflects whether the unit definition was properly loaded.
ACTIVE → The high-level unit activation state, i.e. generalization of SUB.
SUB → The low-level unit activation state, values depend on unit type.
7 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.
student@localhost:~$ systemctl list-unit-files
UNIT FILE STATE PRESET
proc-sys-fs-binfmt_misc.automount static -
-.mount generated -
boot.mount generated -
dev-hugepages.mount static -
dev-mqueue.mount static -
proc-sys-fs-binfmt_misc.mount disabled disabled
run-vmblock\x2dfuse.mount disabled disabled
sys-fs-fuse-connections.mount static -
sys-kernel-config.mount static -
sys-kernel-debug.mount static -
sys-kernel-tracing.mount static -
tmp.mount disabled disabled
cups.path enabled enabled
insights-client-results.path disabled disabled
lvm-devices-import.path disabled disabled
systemd-ask-password-console.path static -
systemd-ask-password-plymouth.path static -
systemd-ask-password-wall.path static -
session-2.scope transient -
accounts-daemon.service enabled enabled
alsa-card-wait@.service static -
alsa-restore.service static -
alsa-state.service static -
arp-ethers.service disabled disabled
atd.service enabled enabled
audit-rules.service enabled enabled
auditd.service enabled enabled
autovt@.service alias -
avahi-daemon.service enabled enabled
blk-availability.service disabled disabled
bluetooth.service enabled enabled
bolt.service static -
brltty.service disabled disabled
canberra-system-bootup.service disabled disabled
canberra-system-shutdown-reboot.service disabled disabled
student@localhost:~$ systemctl list-unit-files -t service
UNIT FILE STATE PRESET
accounts-daemon.service enabled enabled
alsa-card-wait@.service static -
alsa-restore.service static -
alsa-state.service static -
arp-ethers.service disabled disabled
atd.service enabled enabled
audit-rules.service enabled enabled
auditd.service enabled enabled
autovt@.service alias -
avahi-daemon.service enabled enabled
blk-availability.service disabled disabled
bluetooth.service enabled enabled
bolt.service static -
brltty.service disabled disabled
canberra-system-bootup.service disabled disabled
canberra-system-shutdown-reboot.service disabled disabled
canberra-system-shutdown.service disabled disabled
capsule@.service static -
chrony-wait.service disabled disabled
chronyd-restricted.service disabled disabled
chronyd.service enabled enabled
cockpit-issue.service static -
cockpit-session-socket-user.service static -
cockpit-session@.service static -
cockpit-wsinstance-http.service static -
cockpit-wsinstance-https-factory@.service static -
cockpit-wsinstance-https@.service static -
cockpit-wsinstance-socket-user.service static -
cockpit.service static -
colord.service static -
com.redhat.Yggdrasil1.Worker1.package_manager.service disabled disabled
configure-printer@.service static -
console-getty.service disabled disabled
container-getty@.service static -
crond.service enabled enabled
systemctl start [Unit] Start a unit that is not currently active
systemctl stop [Unit] Stop the unit
systemctl enable --now [Unit] Enable the unit for automatic starting upon Linux start
systemctl disable --now [Unit] Disable the unit to be no longer automatically started.
systemctl reload [Unit] Reload the unit configuration without restarting the unit.
systemctl restart [Unit] Restarts the unit. The process that it manages will gets a new PID.
systemctl is-active [Unit] Verify the unit is active.
systemctl is-enabled [Unit] Verify the unit is enabled.
Tutorial
Check the status
systemctl status [Unit]
Example: systemctl status sshd
Stop the unit
systemctl stop [Unit]
Example: systemctl stop sshd
Check the status
systemctl status [Unit]
Example: systemctl status sshd
Start the unit
systemctl start [Unit]
Example: systemctl start sshd
Check the status
systemctl status [Unit]
Example: systemctl status sshd
Disable the unit
systemctl disable --now [Unit]
Example: systemctl disable --now sshd
Check the status
systemctl status [Unit]
Example: systemctl status sshd
Enable the unit
systemctl enable --now [Unit]
Example: systemctl enable --now sshd
Check the status
systemctl status [Unit]
Example: systemctl status sshd
Result
student@localhost:~$ systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; preset: enabled)
Active: active (running) since Fri 2026-08-14 08:35:00 +08; 6h ago
Invocation: 6331aef57b7340ccb34cb9c52b0cbc33
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 1138 (sshd)
Tasks: 1 (limit: 22995)
Memory: 1.8M (peak: 2M)
CPU: 34ms
CGroup: /system.slice/sshd.service
└─1138 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
Aug 14 08:35:00 localhost.localdomain systemd[1]: Starting sshd.service - OpenSSH server daemon...
Aug 14 08:35:00 localhost.localdomain sshd[1138]: Server listening on 0.0.0.0 port 22.
Aug 14 08:35:00 localhost.localdomain systemd[1]: Started sshd.service - OpenSSH server daemon.
Aug 14 08:35:00 localhost.localdomain sshd[1138]: Server listening on :: port 22.
student@localhost:~$ systemctl stop sshd
student@localhost:~$ systemctl status sshd
○ sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; preset: enabled)
Active: inactive (dead) since Fri 2026-08-14 15:00:19 +08; 3s ago
Duration: 6h 25min 18.560s
Invocation: 6331aef57b7340ccb34cb9c52b0cbc33
Docs: man:sshd(8)
man:sshd_config(5)
Process: 1138 ExecStart=/usr/sbin/sshd -D $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 1138 (code=exited, status=0/SUCCESS)
Mem peak: 2M
CPU: 52ms
Aug 14 08:35:00 localhost.localdomain systemd[1]: Starting sshd.service - OpenSSH server daemon...
Aug 14 08:35:00 localhost.localdomain sshd[1138]: Server listening on 0.0.0.0 port 22.
Aug 14 08:35:00 localhost.localdomain systemd[1]: Started sshd.service - OpenSSH server daemon.
Aug 14 08:35:00 localhost.localdomain sshd[1138]: Server listening on :: port 22.
Aug 14 15:00:19 localhost.localdomain systemd[1]: Stopping sshd.service - OpenSSH server daemon...
Aug 14 15:00:19 localhost.localdomain sshd[1138]: Received signal 15; terminating.
Aug 14 15:00:19 localhost.localdomain systemd[1]: sshd.service: Deactivated successfully.
Aug 14 15:00:19 localhost.localdomain systemd[1]: Stopped sshd.service - OpenSSH server daemon.
student@localhost:~$ systemctl start sshd
student@localhost:~$ systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; preset: enabled)
Active: active (running) since Fri 2026-08-14 15:00:45 +08; 2s ago
Invocation: 376a6663752e457eaca8f55c6e7825f4
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 6225 (sshd)
Tasks: 1 (limit: 22995)
Memory: 1.3M (peak: 1.5M)
CPU: 92ms
CGroup: /system.slice/sshd.service
└─6225 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
Aug 14 15:00:45 localhost.localdomain systemd[1]: Starting sshd.service - OpenSSH server daemon...
Aug 14 15:00:45 localhost.localdomain sshd[6225]: Server listening on 0.0.0.0 port 22.
Aug 14 15:00:45 localhost.localdomain systemd[1]: Started sshd.service - OpenSSH server daemon.
Aug 14 15:00:45 localhost.localdomain sshd[6225]: Server listening on :: port 22.
student@localhost:~$ systemctl disable --now sshd
Removed '/etc/systemd/system/multi-user.target.wants/sshd.service'.
^[[Astudent@localhost:~$ systemctl status sshd
○ sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; disabled; preset: enabled)
Active: inactive (dead)
Docs: man:sshd(8)
man:sshd_config(5)
Aug 14 15:00:19 localhost.localdomain systemd[1]: sshd.service: Deactivated successfully.
Aug 14 15:00:19 localhost.localdomain systemd[1]: Stopped sshd.service - OpenSSH server daemon.
Aug 14 15:00:45 localhost.localdomain systemd[1]: Starting sshd.service - OpenSSH server daemon...
Aug 14 15:00:45 localhost.localdomain sshd[6225]: Server listening on 0.0.0.0 port 22.
Aug 14 15:00:45 localhost.localdomain systemd[1]: Started sshd.service - OpenSSH server daemon.
Aug 14 15:00:45 localhost.localdomain sshd[6225]: Server listening on :: port 22.
Aug 14 15:01:30 localhost.localdomain systemd[1]: Stopping sshd.service - OpenSSH server daemon...
Aug 14 15:01:30 localhost.localdomain sshd[6225]: Received signal 15; terminating.
Aug 14 15:01:30 localhost.localdomain systemd[1]: sshd.service: Deactivated successfully.
Aug 14 15:01:30 localhost.localdomain systemd[1]: Stopped sshd.service - OpenSSH server daemon.
student@localhost:~$ systemctl enable --now sshd
Created symlink '/etc/systemd/system/multi-user.target.wants/sshd.service' → '/usr/lib/systemd/system/sshd.service'.
student@localhost:~$ systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; preset: enabled)
Active: active (running) since Fri 2026-08-14 15:01:54 +08; 3s ago
Invocation: c005959ee09d4136a5c7db216e247140
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 6732 (sshd)
Tasks: 1 (limit: 22995)
Memory: 1.3M (peak: 1.5M)
CPU: 21ms
CGroup: /system.slice/sshd.service
└─6732 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
Aug 14 15:01:54 localhost.localdomain systemd[1]: Starting sshd.service - OpenSSH server daemon...
Aug 14 15:01:54 localhost.localdomain sshd[6732]: Server listening on 0.0.0.0 port 22.
Aug 14 15:01:54 localhost.localdomain sshd[6732]: Server listening on :: port 22.
Aug 14 15:01:54 localhost.localdomain systemd[1]: Started sshd.service - OpenSSH server daemon.
List all currently units' dependencies
Press q to exit
systemctl list-dependencies
List specific unit's dependencies
Press q to exit
systemctl list-dependencies [Unit]
Example: systemctl list-dependencies sshd.service
Result
student@localhost:~$ systemctl list-dependencies
default.target
● ├─accounts-daemon.service
● ├─gdm.service
● ├─gnome-remote-desktop.service
○ ├─nvmefc-boot-connections.service
● ├─rtkit-daemon.service
● ├─switcheroo-control.service
○ ├─systemd-update-utmp-runlevel.service
● ├─tuned-ppd.service
● ├─udisks2.service
● ├─upower.service
● └─multi-user.target
● ├─atd.service
○ ├─audit-rules.service
● ├─auditd.service
● ├─avahi-daemon.service
● ├─chronyd.service
● ├─crond.service
● ├─cups.path
● ├─cups.service
● ├─firewalld.service
○ ├─insights-client-boot.service
● ├─irqbalance.service
● ├─kdump.service
● ├─libstoragemgmt.service
● ├─mcelog.service
○ ├─mdmonitor.service
● ├─ModemManager.service
● ├─NetworkManager.service
● ├─plymouth-quit-wait.service
○ ├─plymouth-quit.service
● ├─rhsmcertd.service
● ├─rsyslog.service
○ ├─smartd.service
● ├─sshd.service
○ ├─sssd.service
● ├─systemd-ask-password-wall.path
● ├─systemd-logind.service
○ ├─systemd-update-utmp-runlevel.service
● ├─systemd-user-sessions.service
● ├─tuned.service
○ ├─vmtoolsd.service
● ├─basic.target
● │ ├─-.mount
○ │ ├─rpmdb-migrate.service
○ │ ├─rpmdb-rebuild.service
● │ ├─paths.target
● │ ├─slices.target
● │ │ ├─-.slice
● │ │ └─system.slice
● │ ├─sockets.target
● │ │ ├─avahi-daemon.socket
● │ │ ├─cockpit.socket
● │ │ ├─cups.socket
● │ │ ├─dbus.socket
● │ │ ├─dm-event.socket
● │ │ ├─iscsid.socket
● │ │ ├─iscsiuio.socket
● │ │ ├─sshd-unix-local.socket
● │ │ ├─sshd-vsock.socket
● │ │ ├─sssd-kcm.socket
● │ │ ├─systemd-bootctl.socket
student@localhost:~$ systemctl list-dependencies sshd.service
sshd.service
○ ├─ssh-host-keys-migration.service
● ├─system.slice
● ├─sshd-keygen.target
○ │ ├─sshd-keygen@ecdsa.service
○ │ ├─sshd-keygen@ed25519.service
○ │ └─sshd-keygen@rsa.service
● └─sysinit.target
● ├─dev-hugepages.mount
● ├─dev-mqueue.mount
● ├─dracut-shutdown.service
○ ├─fips-crypto-policy-overlay.service
○ ├─iscsi-onboot.service
○ ├─iscsi-starter.service
● ├─kmod-static-nodes.service
○ ├─ldconfig.service
● ├─lvm2-lvmpolld.socket
● ├─lvm2-monitor.service
○ ├─multipathd.service
● ├─plymouth-read-write.service
● ├─plymouth-start.service
● ├─proc-sys-fs-binfmt_misc.automount
○ ├─selinux-autorelabel-mark.service
● ├─sys-fs-fuse-connections.mount
● ├─sys-kernel-config.mount
● ├─sys-kernel-debug.mount
● ├─sys-kernel-tracing.mount
○ ├─systemd-ask-password-console.path
○ ├─systemd-binfmt.service
○ ├─systemd-boot-random-seed.service
○ ├─systemd-confext.service
○ ├─systemd-firstboot.service
○ ├─systemd-hibernate-clear.service
○ ├─systemd-hwdb-update.service
○ ├─systemd-journal-catalog-update.service
● ├─systemd-journal-flush.service