Linux Admin - Ressourcenverwaltung mit systemctl
systemctlist das Dienstprogramm zur Steuerung von systemd. systemctl bietet CentOS-Administratoren die Möglichkeit, eine Vielzahl von Vorgängen auf systemd auszuführen, darunter:
- Konfigurieren Sie systemd-Einheiten
- Holen Sie sich den Status von systemd untis
- Starten und Beenden von Diensten
- Aktivieren / Deaktivieren von systemd-Diensten zur Laufzeit usw.
Die Befehlssyntax für systemctl ist ziemlich einfach , kann sich jedoch mit Schaltern und Optionen verwickeln . Wir werden die wichtigsten Funktionen von systemctl vorstellen, die für die Verwaltung von CentOS Linux benötigt werden.
Basic systemctl syntax:
systemctl [OPTIONS] COMMAND [NAME]
Im Folgenden sind die allgemeinen Befehle aufgeführt, die mit systemctl - verwendet werden.
- start
- stop
- restart
- reload
- status
- is-active
- list-units
- enable
- disable
- cat
- show
Wir haben bereits das Starten , Stoppen , Neuladen , Neustarten , Aktivieren und Deaktivieren mit systemctl besprochen. Gehen wir also die verbleibenden häufig verwendeten Befehle durch.
Status
In seiner einfachsten Form kann der Statusbefehl verwendet werden, um den Systemstatus als Ganzes anzuzeigen -
[root@localhost rdc]# systemctl status
● localhost.localdomain
State: running
Jobs: 0 queued
Failed: 0 units
Since: Thu 2017-01-19 19:14:37 EST; 4h 5min ago
CGroup: /
├─1 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
├─user.slice
│ └─user-1002.slice
│ └─session-1.scope
│ ├─2869 gdm-session-worker [pam/gdm-password]
│ ├─2881 /usr/bin/gnome-keyring-daemon --daemonize --login
│ ├─2888 gnome-session --session gnome-classic
│ ├─2895 dbus-launch --sh-syntax --exit-with-session
Die obige Ausgabe wurde komprimiert. In der realen Welt gibt systemctl status ungefähr 100 Zeilen Baumstatus aus.
Angenommen, wir möchten den Status unseres Firewall-Dienstes überprüfen.
[root@localhost rdc]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2017-01-19 19:14:55 EST; 4h 12min ago
Docs: man:firewalld(1)
Main PID: 825 (firewalld)
CGroup: /system.slice/firewalld.service
└─825 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
Wie Sie sehen, ist unser Firewall-Dienst derzeit aktiv und besteht seit über 4 Stunden.
Listeneinheiten
Mit dem Befehl list-unit können wir alle Einheiten eines bestimmten Typs auflisten. Lassen Sie uns nach Sockets suchen, die von systemd verwaltet werden -
[root@localhost]# systemctl list-units --type=socket
UNIT LOAD ACTIVE SUB DESCRIPTION
avahi-daemon.socket loaded active running Avahi mDNS/DNS-SD Stack Activation Socket
cups.socket loaded active running CUPS Printing Service Sockets
dbus.socket loaded active running D-Bus System Message Bus Socket
dm-event.socket loaded active listening Device-mapper event daemon FIFOs
iscsid.socket loaded active listening Open-iSCSI iscsid Socket
iscsiuio.socket loaded active listening Open-iSCSI iscsiuio Socket
lvm2-lvmetad.socket loaded active running LVM2 metadata daemon socket
lvm2-lvmpolld.socket loaded active listening LVM2 poll daemon socket
rpcbind.socket loaded active listening RPCbind Server Activation Socket
systemd-initctl.socket loaded active listening /dev/initctl Compatibility Named Pipe
systemd-journald.socket loaded active running Journal Socket
systemd-shutdownd.socket loaded active listening Delayed Shutdown Socket
systemd-udevd-control.socket loaded active running udev Control Socket
systemd-udevd-kernel.socket loaded active running udev Kernel Socket
virtlockd.socket loaded active listening Virtual machine lock manager socket
virtlogd.socket loaded active listening Virtual machine log manager socket
Lassen Sie uns nun die aktuell ausgeführten Dienste überprüfen -
[root@localhost rdc]# systemctl list-units --type=service
UNIT LOAD ACTIVE SUB DESCRIPTION
abrt-ccpp.service loaded active exited Install ABRT coredump hook
abrt-oops.service loaded active running ABRT kernel log watcher
abrt-xorg.service loaded active running ABRT Xorg log watcher
abrtd.service loaded active running ABRT Automated Bug Reporting Tool
accounts-daemon.service loaded active running Accounts Service
alsa-state.service loaded active running Manage Sound Card State (restore and store)
atd.service loaded active running Job spooling tools
auditd.service loaded active running Security Auditing Service
ist aktiv
Der Befehl is-active ist ein Beispiel für systemctl-Befehle, mit denen die Statusinformationen einer Einheit zurückgegeben werden.
[root@localhost rdc]# systemctl is-active ksm.service
active
Katze
Katze ist einer der selten verwendeten Befehle. Verwenden Sie einfach systemctl cat, anstatt cat in der Shell zu verwenden und den Pfad zu einer Einheitendatei einzugeben .
[root@localhost]# systemctl cat firewalld
# /usr/lib/systemd/system/firewalld.service
[Unit]
Description=firewalld - dynamic firewall daemon
Before=network.target
Before=libvirtd.service
Before = NetworkManager.service
After=dbus.service
After=polkit.service
Conflicts=iptables.service ip6tables.service ebtables.service ipset.service
Documentation=man:firewalld(1)
[Service]
EnvironmentFile = -/etc/sysconfig/firewalld
ExecStart = /usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS
ExecReload = /bin/kill -HUP $MAINPID
# supress to log debug and error output also to /var/log/messages
StandardOutput = null
StandardError = null
Type = dbus
BusName = org.fedoraproject.FirewallD1
[Install]
WantedBy = basic.target
Alias = dbus-org.fedoraproject.FirewallD1.service
[root@localhost]#
Nachdem wir sowohl systemd als auch systemctl genauer untersucht haben, verwenden wir sie, um die Ressourcen in cgroups oder Kontrollgruppen zu verwalten .