Guia fundamental para conocer como funcionaran los servicios en las nuevas distribuciones, los nuevos estandares y metodos para la activacion de recursos, demonios y otros procesos.
Introduccion a systemd
systemd es un administrador de sistema y servicio para Linux, y sustituye SysV y Upstart utilizado en versiones anteriores de Red Hat Enterprise Linux. systemd esta diseñado para ser compatible con SysV y proporciona una serie de caracterÃsticas como la puesta en marcha en paralelo de los servicios del sistema en tiempo de arranque, la activación por demanda de los demonios, el apoyo a las instantáneas del estado del sistema, o la lógica de control de servicio basado en la dependencia, esta soportado a traves de ‘targets’ y estos en runlevels de ejecucion. En Red Hat Enterprise Linux 7, systemd reemplaza Upstart como el sistema de inicio por defecto.
Caracteristicas de systemd
- Es compatible con los scripts de SysVinit
- Inicia mas rapido que los sistemas anteriores
- Provee altas capacidades de paralelizacion
- Usa socket y activacion D-Bus para iniciar servicios
- Reemplaza scripts de shell y script con programas
- Ofrece inicio de demonios sobre demanda
- Realiza seguimiento de los procesos usando cgroups
- Soporta la creacion de snapshots y restauracion del estado del sistema
- Mantiene puntos de montaje y automontaje
- Implementa una elaborada logica de control de servicios basada en dependencia transaccional
- Puede trabajar como un reemplazo de SysVinit
Comparacion de la utilidad SERVICE usado con SYSTEMCTL
service systemctl Descripcion service name stop systemctl stop name.service detener un servicio service name start systemctl start name.service iniciar un servicio service name restart systemctl restart name.service reiniciar un servicio service name condrestart systemctl try-restart name.service reinicar un servicio solo si este esta corriendo service name reload systemctl reload name.service recargar configuracion service name status systemctl status name.service systemctl is-active name.service chequear el estado del servicio service --status-all systemctl list-units --type service --all desplegar el estado de todos los servicios
Comparacion de la utilidad CHKCONFIG usado con SYSTEMCTL
chkconfig systemctl descripcion chkconfig name on systemctl enable name.service habilitar servicio chkconfig name off systemctl disable name.service desabilitar servicio chkconfig --list name systemctl status name.service systemctl is-enabled name.service chequear si el servicio esta habilitado chkconfig --list systemctl list-unit-files --type service listar todos los servicios que esatn habilitados chkconfig --list systemctl list-dependencies --after lista los servicios ordenados antes de una unidad especifica chkconfig --list systemctl list-dependencies --before lista los servicios ordenados despues de una unidad especifica
Niveles de ejecucion
SysV systemd USO 0 runlevel0.target o poweroff.target Apaga el sistema 1 o S runlevel1.target o resue.target Nivel mono-usuario 2 runlevel2.target o multi-user.target Multi-Usuario Identico al nivel 3 3 runlevel3.target o multi-user.target Multi-Usuario 4 runlevel4.target o multi-user.target Multi-Usuario Identico al nivel 3 5 runlevel5.target o graphical.target Multi-usuario con servidor de video 6 runlevel6.target o reboot.target Reinicia sistema emergency emergency.target interprete de recuperacion
Comandos
Comando Tarea systemctl status unit ver informacion detallada acerca del estado del servicio systemctl start unit Iniciar un servicio systemctl stop unit Detener un servicio systemctl restart unit Reinciar un servicio systemctl reload unit recargar un servicio systemctl mask unit Desactiva por completo un servicio desde el arranque, solo podra ser iniciado manualmente systemctl unmask unit Enmascara un servicio systemctl enable unit Activa un servicio desde el arranque systemctl disable unit Desactiva un servicio desde el arranque systemctl list-dependencies unit Lista las depencias que el servicio necesita para inicar
Archivos de configuracion de systemd
Aunque systemd prefiere utilizar un conjunto de archivos de configuracion correspondientes a un estandar nuevo, tambien puede utilizar archivos de configuracion heredados dependiendo de cada distribucion.
Un ejemplo de un archivo de configuracion nuevo seria /etc/hostname, el cual reemplazaria a /etc/sysconfig/network, este estandar tambien fue adoptado por DEBIAN y sus deribados.
- /etc/vconsole.conf : mapa del teclado por defecto y fuentes de consola
- /etc/sysctl.d/*.conf : directorio para los parametros sysctl del kernel
- /etc/os-release : archivo ID de la distribucion
Estados del servicio
- loaded : Archivo de configuración de la unidad que ha sido procesada
- active (running) : Corriendo con uno o mas procesos continuos
- active (exited) : completo con éxito una configuración de una sola vez
- active (waiting): corriendo, pero a la espera de un evento
- inactive : sin correr
- enabled : se iniciará en el arranque
- disabled : no se iniciara en el arranque
- static : no puede ser habilitado, pero puede ser iniciado por una unidad activa automáticamente
Iniciar y parar servicios
- Para iniciar un servicio systemd ejecuta las instrucciones como usuario root, por lo que si el usuario no esta dentro de la tabla de sudo estos no seran ejecutados.
systemctl start servicio.service
- Para detener un servicio se hace de la misma forma cambiando start por stop
systemctl stop servicio.service
Reiniciar y recargar un servicio
- Reniciar
systemctl restart servicio.service
- Recargar
systemctl reload servicio.service
Si no está seguro si el servicio tiene la funcionalidad para recargar su configuración, puede emitir el comando reload–or–restart. Esto volverá a cargar la configuración en el lugar si está disponible. De lo contrario, se reiniciará el servicio.
systemctl reload-or-restart servicio.service
Habilitar y desabilitar un servicio
Estos comandos se utilizan para dejar un servicio en el arranque, es similar a lo que haciamos con chkconfig o update-rc.d
- Habilitar
systemctl enable servicio.service
- Desabilitar
systemctl disable servicio.service
Estado de un servicio
Esto lo vimos un poco mas arriba pero detallare algunos comando muy utiles para saber estados del servicio
- Saber si el servicio esta activo
systemctl is-active servicio.service
- Saber si el servicio esta configurado para iniciar en el arranque
systemctl is-enabled servicio.service
- Saber si el servicio esta en estado de falla
systemctl is-failed servicio.service
Listar y descubrir unidades
- El siguiente comando es lo mismo que decir chkconfig –list
systemctl list-unit-files
- Si quisieras solo conocer los servicios que actualmente estan activos chkconfig –list | grep «activo»
systemctl list-units
- para poder ver la configuracion de un servicio
systemctl cat servicio.service
- Mirar las dependencias de un servicio
systemctl list-dependencies servicio.service
este comando despliega la informacion de dependencias requeridas del servicio en forma de arbol
- Chequear las propiedades del servicio
systemctl show servicio.service
- Editar un servicio
systemctl edit servicio.service
Espero que esta guia les sea util systemd es el futuro y es la adaptacion del nuevo estandar de linux, si viene cierto en el examen de certificacion de RHEL 7 (RHCSA), no vienen preguntas relacionadas a esto, se vuelve fundamental al momento de iniciar o detener servicios y por sobre todo despues de recuperar la password de root.
Una vez recuperada dicha password y para poder configurar mucho mas facil LDAP, deveran activar la interfaz grafica, la cual pueden activar de la siguiente manera.
systemctl isolate graphical.target
antes bastaba con cambiar el archivo de grub y dejar el init en 5
init 5
recuerden tambien que el nivel de ejecucion de el target grafico es el numero 5 por lo que si miran la tabla que deje al principio del post se daran cuenta que podrian ocupar cualquiera de estos 2 comandos y estarian haciendo lo mismo
systemctl isolate runlevel5.targetsystemctl isolate graphical.target
Exito y como siempre, a estudiar los examenes no son para nada faciles.
No hay comentarios.:
Publicar un comentario