-
Trabajando con targets systemd
Antes se trabajaba con SysV init que implementaban runlevels. Los targets systemd son representados por target uits. Cada una de estas finaliza con la extensión .target y su único propósito es agrupar unidades a trabés de una cadena de dependencias.
Para fuardar retrocompatibilidad, también provee alias para estos targets que directamente se mapean a los runleves SysV.
Si quisieramos cambiar de run level:
# systemctl list-units –type target
-
Mirando los targets
Si quisiéramos ver el target default:
# systemctl get-default
graphical.target
Si quisiéramos ver el target en el que nos encontramos ahora
# systemctl get-default
Para listar las targets units cargadas:
# systemctl list-units –type target
UNIT LOAD ACTIVE SUB DESCRIPTION
basic.target loaded active active Basic System
cryptsetup.target loaded active active Encrypted Volumes
Por cada target esta el nombre de la unidad, si esta cargado, activo y la descripción. Por defecto lista las unidades activas. Si al mismo comando le agregamos el “–all”
# systemctl list-units –type target –all
Muestra todas.
Si queremos listar el target default:
# systemctl set-default graphical.target
Created symlink from /etc/systemd/system/default.target to /lib/systemd/system/graphical.target.
Si queremos cambiar el target de la sesion, por ejemplo para apagar:
# systemctl isolate runlevel6.target
-
Cambiando a modo rescate
El modo rescate provee un entorno single user que permite reparar el sistema en siuaciones donde es imposible completar un proceso de boot. El modo rescate intenta montar filesystem locales e iniciar servicios; pero no activa las interfaces de red o permite que otros usuarios se logueen dentro del sistema.
# systemctl rescue
Que es lo mismo que
# systemctl rescue.target
Pero envia un mensaje al resto de los usuarios. Si queremos que no envíe mensaje:
# systemctl –no-wall rescue
-
Cambiando a modo emergencia
El modo emergencia porvee los mìnimos entornos posibles y permite reparar el sistema en situaciones inclusive cuando no puede entrar en rescue mode. Este modo monta el root FS solamente como lectura. No intenta montar ningún otro FS ni activa interfaces de red e inicia algunos servicios de red:
# systemctl emergency
Que es lo mismo que
# systemctl emergency.target
Pero envia un mensaje al resto de los usuarios. Si queremos que no envíe mensaje:
# systemctl –no-wall rescue
-
Apagando, suspendiendo e hibernando el sistema
Systemctl reemplaza una serie de comando para apagar la máquina y esas cosas
Para apagar la máquina, hay que tipear el siguiente comando:
# systemctl poweroff
Para apagar y detemer el sistema; peor sin hacer el power off:
# systemctl halt
Por defecto, ejecutar cualquiera de estos comandos genera que systemd envíe una información a todos los usuarios que se encuentran logueados avisándole. Si no queremos que envíe dicha info:
# systemctl –no-wall poweroff
Si quisiéramos simplemente reiniciarla
# systemctl reboot
# systemctl –no-wall reboot
-
Suspendiendo e Hibernando el sistema
Este comando guarda el estado del sistema en la RAM y detiene la mayoría de los dispositivos en la máquina. Cuan se enciende la máquina nuevamente, el sistema restaura el estado desde la RAM sin tener que reiniciar. Como se guarda en la ram, es más fácil que restaurarlo de hibernación.
# systemctl suspend
Para hibernar el sistema, se guarda el estado del mismo en el disco rígido y apaga la mñaquina. Cuando se enciende la misma, se erstaura su estados desde la información guardada sin tener que reiniciar de nuevo.
# systemctl hibernate
Para realizar las dos cosas:
# systemctl hybrid-sleep
-
Controlando Systemd en otras máquinas
Adicionalmente, systemctl provee la utilidad de también interactuar co nsystemd en otras máquinas a través del protocolo SSH. Si se encuentra corriendo el ssh en la máquina remota, uno se puede conectar:
Supongamos que la máquina remota tiene la IP 192.168.1.4
systemctl –host root@192.168.1.4 status rsyslog
rsyslog.service – System Logging Service
Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled)
Active: active (running) since Wed 2016-03-16 15:36:16 ART; 10min ago
Docs: man:rsyslogd(8)
http://www.rsyslog.com/doc/
Main PID: 434
CGroup: /system.slice/rsyslog.service