Administrador de Linux - Gestión de recursos con systemctl
systemctles la utilidad utilizada para controlar systemd. systemctl proporciona a los administradores de CentOS la capacidad de realizar una multitud de operaciones en systemd, que incluyen:
- Configurar unidades systemd
- Obtener el estado de systemd untis
- Iniciar y detener servicios
- Activar / desactivar los servicios de systemd para el tiempo de ejecución, etc.
La sintaxis de comando para systemctl es bastante básica, pero puede enredarse con interruptores y opciones. Presentaremos las funciones más esenciales de systemctl necesarias para administrar CentOS Linux.
Basic systemctl syntax:
systemctl [OPTIONS] COMMAND [NAME]
A continuación se muestran los comandos comunes que se usan con systemctl :
- start
- stop
- restart
- reload
- status
- is-active
- list-units
- enable
- disable
- cat
- show
Ya hemos hablado de iniciar , detener , recargar , reiniciar , habilitar y deshabilitar con systemctl. Así que repasemos los comandos restantes de uso común.
estado
En su forma más simple, el comando de estado se puede utilizar para ver el estado del sistema en su totalidad:
[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 salida anterior se ha condensado. En el mundo real systemctl status generará alrededor de 100 líneas de estados de proceso treed.
Digamos que queremos verificar el estado de nuestro servicio de firewall -
[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
Como puede ver, nuestro servicio de firewall está activo actualmente y lo ha estado durante más de 4 horas.
unidades de lista
El comando list-units nos permite listar todas las unidades de un cierto tipo. Comprobemos los sockets gestionados por 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
Ahora revisemos los servicios en ejecución actuales:
[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
está activo
El comando is-active es un ejemplo de los comandos systemctl diseñados para devolver la información de estado de una unidad.
[root@localhost rdc]# systemctl is-active ksm.service
active
gato
cat es uno de los comandos que rara vez se utilizan. En lugar de usar cat en el shell y escribir la ruta a un archivo de unidad, simplemente use 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]#
Ahora que hemos explorado systemd y systemctl con más detalle, usémoslos para administrar los recursos en cgroups o grupos de control .