Administrateur Linux - Gestion des ressources avec systemctl
systemctlest l'utilitaire utilisé pour contrôler systemd. systemctl offre aux administrateurs CentOS la possibilité d'effectuer une multitude d'opérations sur systemd, y compris -
- Configurer les unités systemd
- Obtenir le statut des untis systemd
- Démarrer et arrêter les services
- Activer / désactiver les services systemd pour l'exécution, etc.
La syntaxe de commande pour systemctl est assez basique, mais peut s'embrouiller avec des commutateurs et des options. Nous présenterons les fonctions les plus essentielles de systemctl nécessaires à l'administration de CentOS Linux.
Basic systemctl syntax:
systemctl [OPTIONS] COMMAND [NAME]
Voici les commandes courantes utilisées avec systemctl -
- start
- stop
- restart
- reload
- status
- is-active
- list-units
- enable
- disable
- cat
- show
Nous avons déjà discuté de démarrer , arrêter , recharger , redémarrer , activer et désactiver avec systemctl. Passons donc en revue les commandes les plus couramment utilisées.
statut
Dans sa forme la plus simple, la commande status peut être utilisée pour voir l'état du système dans son ensemble -
[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
La sortie ci-dessus a été condensée. Dans le monde réel, le statut systemctl affichera environ 100 lignes d'états de processus arborés.
Disons que nous voulons vérifier l'état de notre service de pare-feu -
[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
Comme vous le voyez, notre service de pare-feu est actuellement actif et existe depuis plus de 4 heures.
liste-unités
La commande list-units nous permet de lister toutes les unités d'un certain type. Vérifions les sockets gérées par systemd -
[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
Maintenant, vérifions les services en cours d'exécution -
[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
c'est actif
La commande is-active est un exemple de commandes systemctl conçues pour renvoyer les informations d'état d'une unité.
[root@localhost rdc]# systemctl is-active ksm.service
active
chat
cat est l'une des commandes rarement utilisées. Au lieu d'utiliser cat dans le shell et de taper le chemin vers un fichier d'unité, utilisez simplement systemctl cat .
[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]#
Maintenant que nous avons exploré les deux systemd et systemctl plus en détail, nous allons les utiliser pour gérer les ressources en cgroups ou groupes témoins .