Categories
es

Cómo gestionar los servicios systemd en un sistema linux

Aunque systemd resuelve muchos problemas con la gestión del sistema, a veces también es confuso.

Incluso una tarea tan simple como listar los servicios systemd puede hacerte pensar.

En este artículo, te mostraré cómo listar los servicios systemd. También explicaré la salida para que te sea más fácil entender los diferentes estados de los servicios.

Asumo que tienes algún conocimiento de systemd pero incluso si no lo tienes, debería estar bien.

Cómo listar los servicios activos en systemd

Los servicios de systemd son gestionados por el comando systemctl. Si ejecutas systemctl sin ningún argumento, invoca el subcomando por defecto list-units y lista varios tipos de unidades systemd como servicios, sockets, objetivos, etc.

Pero tu objetivo es listar los servicios así que especifica el tipo de unidad con la bander a-type como esta:

¿Notaste que no especifiqué el subcomando list-units porque es el predeterminado? Si quieres seguir la convención, puedes especificarlo también. Yo lo prefiero así y seguiré esta convención en el resto del tutorial.

En ambos casos la salida será la misma. Por defecto, este comando muestra sólo los servicios cargados y activos en orden alfabético:

Permíteme explicar la salida:

  • UNIT : nombre de la unidad systemd.
  • LOAD : si el archivo de configuración de la unidad ha sido analizado por systemd.
  • ACTIVE : estado de alto nivel de la unidad.
  • SUB : estado de bajo nivel de la unidad. Una unidad activa puede estar en estado de ejecución o de salida. Este valor depende del tipo de servicio.

Como puedes ver, podrías listar los servicios cargados en tu sistema Linux. Pero un servicio systemd activo puede estar en ejecución o puede haber salido (después de ejecutarse con éxito).

Listar todos los servicios systemd en ejecución

El estado activo también puede tener un sub-estado como ejecutándose, saliendo, etc. Puede utilizar el mismo indicado r-state con el subestado.

Para listar los servicios systemd en ejecución, utilice el indicado r-state=running de la siguiente manera:

Este es un ejemplo de la salida de mi sistema mostrando algunos de los servicios systemd en ejecución:

Listar todos los servicios systemd cargados incluyendo los inactivos

Por defecto, el comando systemctl sólo muestra las unidades cargadas y activas.

Si quieres listar todos los servicios cargados incluyendo los inactivos, usa la bander a-all:

Ahora puede ver incluso los servicios inactivos:

Listar todos los servicios systemd inactivos

Si quieres ver sólo los servicios inactivos, puedes combinar varias banderas com o-all y-state de esta forma:

Como puedes ver en la salida, muestra todos los servicios systemd inactivos:

Listar todos los servicios systemd instalados (incluso si no están cargados)

Cada unidad systemd, ya sea servicio o socket o cualquier otra unidad, tiene un archivo de unidad que

Esto es lo que deberías ver:

Explicar cada tipo de estado sería demasiado largo y no está en el alcance de este artículo. Tal vez escriba sobre ello en el futuro.

Lista todos los servicios systemd que se ejecutarán en cada arranque automáticamente

Para ver todos los servicios systemd que se ejecutarán automáticamente cada vez que tu sistema arranque, utiliza este comando:

¿Estás confundido con el estado habilitado? Es normal. Muchos usuarios nuevos confunden un servicio systemd habilitado con un servicio en ejecución.

Sin embargo, un servicio systemd habilitado significa que el servicio se activará automáticamente cuando arranque el sistema.

¿Te has fijado en el Vendor Preset? También estaba presente en el ejemplo anterior.

Vendor preset define el comportamiento automático de la unidad systemd cuando se instala un programa.

Supongamos que ha instalado un nuevo programa XYZ. Este XYZ tiene un servicio systemd llamado xyz. service con vendor preset activado. Esto significa que después de instalar el programa, cuando arranque el sistema, este servicio xyz. service se activará automáticamente en el arranque.

Si el vendor preset está desactivado, tendrás que activarlo manualmente. Una vez habilitado, se iniciará automáticamente en cada arranque.

Mostrar el estado de un servicio systemd en particular

Hasta ahora, has visto varias formas de listar servicios. Pero nada se centra en un solo servicio.

Puedes obtener información detallada sobre un servicio systemd utilizando el subcomando status de systemctl. El tabulador de finalización funciona con este comando.

Aquí hay un ejemplo con el servicio administrador de red:

Puedes ver que proporciona mucha información útil como el estado del servicio, la página man del servicio, la memoria que consume, el id del proceso, etc. También muestra los últimos registros journald del servicio.

Si quieres comprobar si un servicio está activo o no en un script de shell, puedes utilizar el subcomando is-active. La salida es 0 para activo.

Del mismo modo, si desea comprobar si un servicio está habilitado (configurado para iniciarse automáticamente en el arranque), puede utilizar el subcomando is-enabled. La salida es 0 para servicio habilitado.

Conclusión

Creo que ahora entiendes mejor como listar los servicios systemd. Espero que hayas aprendido algunas cosas nuevas sobre systemd y el comando systemctl.

No dudes en dejar tus comentarios, preguntas o sugerencias en la sección de comentarios.

En los últimos años, la mayoría de las distribuciones de Linux han cambiado la forma en que se inician. Anteriormente, el estilo UNIX sysvinit gobernaba el gallinero aparte de algunos valores atípicos, como Ubuntu que hizo uso de Upstart para sus sistemas operativos. Recientemente, muchas distribuciones de Linux se han pasado al nuevo proceso systemd para gestionar el arranque y apagado del sistema.

Cómo trabajar con Systemd para gestionar servicios en un servidor

Para empezar, para aquellos que no estén familiarizados, echaremos un vistazo rápido a cómo arranca un sistema Linux. Para ello, la BIOS cargará primero el gestor de arranque, que en la mayoría de los sistemas Linux modernos es GRUB 2. El trabajo del gestor de arranque es encontrar e iniciar el Kernel Linux, que actúa como interfaz entre el software y el hardware del ordenador. Una vez arrancado, el Kernel busca e inicia el sistema init que es el responsable de inicializar los diferentes servicios y software del sistema. Al trabajar con el sistema sysvinit, probablemente estés familiarizado con el uso de los scripts en /etc/init. d para iniciar y detener servicios junto con el comando service. Systemd reemplaza esto completamente y tiene su propio comando y sintaxis para iniciar y detener servicios. Para la mayoría del trabajo que harás con systemd, usarás el comando systemctl. Así que vamos a utilizar algunos ejemplos para explicar cómo funciona systemctl. Específicamente, vamos a usar el servicio Apache2, pero obviamente puedes reemplazar Apache2 con el nombre del servicio que desees administrar. Tenga en cuenta aquí que systemctl necesita ser llamado como usuario root o usando sudo desde una cuenta de usuario con los permisos sudo apropiados. systemctl start apache2 – Comenzando con uno simple aquí, el comando de arriba inicia el servicio Apache2. systemctl stop apache2 – Como arriba, bonito y simple, esto detiene el servicio Apache2 en ejecución. systemctl enable apache2 – Este comando habilita el servicio Apache2 para que se inicie automáticamente en el arranque. systemctl disable apache2 – Al igual que antes, este comando deshabilita el servicio Apache2 para que no se inicie automáticamente al arrancar el sistema. systemctl status – Este comando muestra el estado general del sistema, incluyendo un árbol de procesos que muestra los servicios iniciados por systemd. systemctl status apache2 – Este comando muestra información más detallada sobre el estado de Apache2, incluyendo si se está ejecutando o no, así como una salida truncada del archivo de registro de la última vez que se inició. Esto puede ser útil para ver la razón por la que un servicio puede haber fallado al iniciarse systemctl statu s-l apache2 – Este comando proporciona más o menos la misma salida que el anterior, pero también proporciona la salida completa del registro para ayudar a diagnosticar problemas. systemctl reload apache2 – Este comando recargaría los archivos de configuración para Apache2 sin reiniciarlo. Tenga en cuenta que no todos los servicios son capaces de recargar su configuración sin reiniciarse, por lo que esto puede no ser una opción para algunos servicios. systemctl restart apache2 – Este comando detendría Apache2 y luego lo iniciaría de nuevo. systemctl mask apache2 – La opción mask se utiliza para informar a systemctl que no debería ser capaz de iniciar el servicio. Así, incluso los intentos de iniciarlo manualmente serán bloqueados. systemctl unmask apache2 – Como probablemente pueda adivinar, la opción unmask invierte la función de la opción mask. systemctl list-unit-files – Este comando lista cualquier archivo de unidad que systemd pueda encontrar. Los archivos de unidad son los archivos de instrucciones que le dicen a systemd lo que necesita hacer para iniciar/detener un servicio. Estos archivos se listan junto con su estado: “enabled” para los servicios que se iniciarán en el arranque, “disabled” para los servicios que no se iniciarán, “masked” para los servicios que ha enmascarado y “static” para los archivos que systemd no puede habilitar. Esto es útil para encontrar el nombre correcto de un servicio con el fin de gestionarlo.

systemctl list-units – Este es un compañero del comando anterior en el que se enumeran las unidades cargadas y un poco de información sobre ellas. systemctl poweroff – Este comando apaga el ordenador. systemctl reboot – Este comando reinicia el ordenador. Con esto finaliza nuestro recorrido por las diversas funciones del comando systemctl de systemd y cómo usarlo para administrar los servicios que se ejecutan en tu sistema. Como con la mayoría de los comandos, hay más información en la página man de systemctl de la que hemos incluido aquí. Así que vale la pena echarle un vistazo para ver qué más puedes hacer.

Chris Hoffman es editor jefe de How-To Geek. Ha escrito sobre tecnología durante más de una década y fue columnista de PCWorld durante dos años. Chris ha escrito para The New York Times y Reader’s Digest , ha sido entrevistado como experto en tecnología en canales de televisión como NBC 6 de Miami, y su trabajo ha sido cubierto por medios de noticias como la BBC. Desde 2011, Chris ha escrito más de 2.000 artículos que han sido leídos casi mil millones de veces, y eso sólo aquí, en How-To Geek. Más información.

Systemd se utiliza ahora por defecto en la mayoría de las distribuciones de Linux, desde Fedora y Red Hat hasta Ubuntu, Debian, openSUSE y Arch. El comando systemctl permite obtener información sobre el estado de systemd y controlar los servicios en ejecución.

A pesar de la controversia, esto al menos introduce cierta estandarización en todas las distribuciones de Linux. Los mismos comandos le permitirán gestionar los servicios de la misma manera en cualquier distribución de Linux que utilice systemd.

Nota: Para modificar la configuración de su sistema en una distribución de Linux como Ubuntu que utiliza sudo, necesitará anteponer a los comandos sudo . En otras distribuciones de Linux, tendrá que convertirse en el usuario root con el comando su primero.

Compruebe si su sistema Linux utiliza Systemd

Si no estás seguro de si tu distribución Linux utiliza systemd, abre una ventana de Terminal y ejecuta el siguiente comando. Esto le mostrará el número de versión de systemd en su sistema Linux, si es que tiene systemd instalado:

Analizar el proceso de arranque

El comando systemd-analyze te permite ver información sobre tu proceso de arranque, como cuánto tiempo tardó y qué servicios (y otros procesos) añadieron más tiempo al proceso de arranque.

Para ver información sobre el proceso de arranque en general, ejecute este comando:

Para ver cuánto tardó cada proceso en iniciarse, ejecute este comando:

Ver unidades

Systemd utiliza “unidades”, que pueden ser servicios (.service), puntos de montaje (.mount), dispositivos (.device) o sockets (.socket). El mismo comando systemctl gestiona todos estos tipos de unidades.

Para ver todos los archivos de unidades disponibles en su sistema:

Para listar todas las unidades en ejecución:

Para listar todas las unidades fallidas:

Gestionar servicios

Para ver una lista de servicios habilitados y deshabilitados, utilice el mismo comando systemctl anterior, pero indíquele que sólo liste los servicios:

systemctl list-unit-file s-type=service

El comando systemctl permite iniciar, detener o reiniciar un servicio. También puedes decirle a un servicio que “recargue” su configuración.

El comando status es la única acción que se imprimirá y mostrará en el terminal. Los otros comandos tendrán efecto silenciosamente.

systemctl stop nombre. servicio

systemctl restart nombre. servicio

systemctl reload nombre. servicio

systemctl status nombre. servicio

Utilice el comando systemctl enable para que systemd inicie automáticamente un servicio (u otro tipo de unidad) en el arranque. El comando systemctl disable deshabilita un servicio y evita que se inicie automáticamente con tu ordenador.

systemctl disable nombre. servicio

Puedes “enmascarar” un servicio u otra unidad para evitar que se inicie. Tendrás que desenmascararlo para que pueda iniciarse en el futuro:

systemctl unmask nombre. servicio

Hay mucho más en systemd y sus diversos comandos que esto, por supuesto. Systemd ofrece una variedad de comandos de gestión de energía para apagar, reiniciar, hibernar y controlar el estado de energía del sistema. Puedes escribir tus propios archivos de unidad para crear servicios y puntos de montaje o editar los archivos de unidad existentes.

Systemd también ofrece “objetivos”, que son similares a los niveles de ejecución, pero diferentes. en lugar de un número, los objetivos tienen nombres – es posible que systemd esté en varios estados de objetivo a la vez. Systemd también ofrece su propio diario del sistema, al que se puede acceder con el comando journalctl. Por defecto, almacena los registros del sistema en formato binario – pero puedes cambiar a registros en formato de texto plano, si lo prefieres.

El wiki de Arch Linux tiene más información en profundidad sobre systemd, y la mayoría de la información allí se aplica a systemd en todas las distribuciones de Linux. También deberías revisar la documentación de systemd de tu propia distribución de Linux para más información.

Has leído todo sobre systemd , el nuevo demonio de inicio de Linux. Sabes lo que hace, y por qué. Ahora es el momento de profundizar y aprender cómo hacer que se siente y ruegue – o al menos iniciar, detener y obtener información sobre los servicios.

Iniciar y detener servicios

Mi artículo anterior, “Aquí vamos de nuevo, otro Linux Init: Introducción a systemd” discute los conceptos detrás de systemd y lo que se supone que debe hacer. Ahora es el momento de aprender cómo usarlo para controlar los servicios en nuestros sistemas. systemd es compatible con sysvinit y Upstart, por lo que puedes probarlo instalándolo en cualquier Linux que utilice sysvinit o Upstart sin mucho trabajo extra. Arch Linux, Debian y OpenSUSE incluyen systemd en sus repositorios de software.

Una omisión conspicua de las distribuciones que soportan systemd es Ubuntu. Hay varias razones para esto, y no me importa porque estoy cansado de peleas de frikis y sólo quiero seguir adelante con las cosas. Otra forma es conseguir una copia de Fedora 15 o 16, que ejecuta systemd por defecto.

systemadm es un bonito gestor gráfico de systemd (figura 1). Aún es un bebé, así que podría fallar o algo, pero puedes probarlo instalando el paquete systemd-gtk en Fedora, el paquete systemd en Arch, o el systemd-gui para Debian. No, por supuesto que las distros no pueden usar nombres de paquetes consistentes, porque eso va contra las reglas.

A pesar de lo bonito que es systemadm, vamos a pasar a la línea de comandos para el resto de este artículo. Observa las instrucciones de los ejemplos para ver cuáles requieren privilegios de root. Puedes ver el estado de todo lo que controla systemd ejecutando systemctl sin opciones:

¿Cómo ver sólo los servicios disponibles, en ejecución o no?

Esto escupirá un montón de salida, probablemente un centenar de líneas o más. ¿Quieres ver sólo los servicios activos?

systemctl list-unit s-t service

Puede comprobar el estado de cualquier servicio individual, como el cman. service, w

Estos están en efecto sólo para la sesión actual, así que si quieres que un servicio se inicie en el arranque haz esto:

# systemctl enable sshd. service

Y eso es todo. Sin problemas con los scripts de inicio. Esto deshabilita que se inicie en el arranque:

# systemctl disable sshd. service

Puedes comprobar si un servicio ya se está ejecutando; 0 significa que se está ejecutando y 1 significa que no:

Puede utilizar systemctl halt, poweroff , o reboot para apagar o reiniciar el sistema. Los tres envían un mensaje a los usuarios avisando de que el sistema se está apagando.

Procesos, cgroups y Killing

systemd organiza los procesos con cgroups, y usted puede ver esto con el comando ps, que ha sido actualizado para mostrar cgroups. Ejecute este comando para ver qué servicio posee qué procesos:

Los cgroups se introdujeron en el kernel de Linux hace unos años, y son un mecanismo interesante para asignar y limitar los recursos del kernel. En systemd, los cgroups se utilizan para acorralar y gestionar procesos. Cuando se generan nuevos procesos, se convierten en miembros del cgroup del padre. El cgroup recibe el nombre del servicio al que pertenece, y los servicios no pueden escapar de sus cgroups, por lo que siempre se sabe a qué servicio pertenecen. Cuando necesites matar un servicio puedes matar el cgroup, y enganchar todos sus procesos de un solo golpe en lugar de jugar a encontrar-el-buscador-o-renombrado-proceso. Otra forma de ver la jerarquía de procesos es con el comando system-cgls, como se muestra en la Figura 2.

Ahí está mi viejo amigo el demonio Avahi. Así que en lugar de buscar y matar los dos procesos Avahi a la antigua usanza, systemd me permite hacerlo con un solo comando:

# systemctl kill avahi-daemon. service

Lennart Poettering, el principal autor de systemd, ha escrito una serie de artículos para administradores de sistemas. No están indexados, así que aquí tienes los enlaces para tu comodidad. Estos cubren la personalización de los servicios de inicio, niveles de ejecución, gettys, y todo lo que necesitas saber para controlar systemd

Systemctl es una utilidad de systemd que se encarga de controlar el sistema systemd y el gestor de servicios. Systemd es una colección de demonios de gestión del sistema, utilidades y bibliotecas que sirve como reemplazo del demonio init de System V. Systemd funciona como plataforma central de gestión y configuración para sistemas tipo UNIX.

En el ecosistema Linux, Systemd ha sido implementado en la mayoría de las distribuciones Linux estándar con algunas excepciones. Systemd es el proceso padre de todos los demás demonios a menudo, pero no siempre.

Administrar Servicios Linux Usando Systemctl

Este artículo tiene como objetivo arrojar luz sobre ” Cómo controlar el Sistema y Servicios ” en un sistema que ejecuta systemd.

Comenzando con Systemtd y Systemctl Básico

1. En primer lugar, compruebe si systemd está instalado en su sistema o no, y ¿cuál es la versión de Systemd instalada actualmente?

Está claro en el ejemplo anterior, que tenemos instalada la versión 215 de systemd.

2. Comprueba dónde están instalados los binarios y librerías de systemd y systemctl.

3. 3. Compruebe si systemd se está ejecutando o no.

Nota : systemd se está ejecutando como demonio padre ( PID=1 ). En el comando anterior

Importante : Systemctl acepta servicios (.service ), punto de montaje (.mount ), sockets (.socket ) y dispositivos (.device ) como unidades.

7. Listar todas las unidades disponibles.

8. Lista todas las unidades en ejecución.

9. Listar todas las unidades fallidas.

10. Comprobar si una Unidad ( cron. service ) está habilitada o no?.

11. 11. Compruebe si una unidad o servicio se está ejecutando o no.

Controlar y Administrar Servicios Usando Systemctl

12. Lista todos los servicios (incluyendo habilitados y deshabilitados).

13. ¿Cómo puedo iniciar, reiniciar, detener, recargar y comprobar el estado de un servicio ( httpd. service ) en Linux.

Nota: Cuando usamos comandos como start , restart , stop y reload con systemctl, no obtendremos ninguna salida en la terminal, el único comando de estado imprimirá la salida.

14. Cómo activar un servicio y habilitar o deshabilitar un servicio en el arranque (servicio de autoarranque en el arranque del sistema).

15. Cómo enmascarar (imposibilitar el arranque) o desenmascarar un servicio ( httpd. service ).

16. 16. Como matar un servicio usando el comando systemctl.

Control y gestión de puntos de montaje mediante systemctl

17. Listar todos los puntos de montaje del sistema.

18 . ¿Cómo puedo montar, desmontar, volver a montar, recargar puntos de montaje del sistema y también comprobar el estado de los puntos de montaje en el sistema?

19. Cómo activar, habilitar o deshabilitar un punto de montaje en el arranque (montaje automático en el arranque del sistema).

20. 20. Cómo enmascarar (imposibilitando el arranque) o desenmascarar un punto de montaje en Linux.

Control y Gestión de Sockets usando Systemctl

21. Listar todos los sockets del sistema disponibles.

22. Cómo iniciar, reiniciar, detener, recargar y comprobar el estado de un socket (ejemplo: cups. socket ) en Linux.

23. Cómo activar un socket y habilitarlo o deshabilitarlo en el arranque (autostart socket at system boot).

24. Cómo enmascarar (imposibilitando el arranque) o desenmascarar un socket (cups. socket).

Si aprecias lo que hacemos aquí en TecMint, deberías considerar:

TecMint es el sitio comunitario de más rápido crecimiento y más confiable para cualquier tipo de Artículos, Guías y Libros de Linux en la web. Millones de personas visitan TecMint! para buscar o navegar por los miles de artículos publicados disponibles GRATUITAMENTE para todos.

Si le gusta lo que está leyendo, por favor considere comprarnos un café ( o 2 ) como muestra de agradecimiento.

Estamos agradecidos por su constante apoyo.

Una de las habilidades más importantes que cualquier novato en Systemd puede aprender es cómo administrar los servicios de su computadora. Para los propósitos de este artículo discutiremos lo básico: iniciar, detener, habilitar y deshabilitar servicios desde la línea de comandos de Linux.

Estas tareas no son difíciles de dominar, pero se convierten en una necesidad innegable cuando te ves forzado a detener un programa fuera de control o cuando quieres instalar una nueva aplicación.

¿Qué es Systemd?

Es muy probable que su ordenador Linux ejecute actualmente Systemd. Muchas distribuciones, incluyendo Arch Linux, Debian, Fedora, Red Hat y Ubuntu, lo utilizan por defecto. Algunas distribuciones serían difíciles o imposibles de ejecutar sin él instalado.

Systemd funciona sobre todo como un sustituto robusto del antiguo proyecto de init SysV que las distribuciones UNIX habían utilizado desde la década de 1980. Su principal desarrollador, Lennart Poettering, también ha afirmado que Systemd va más allá de las tareas de init y también puede actuar como plataforma de desarrollo y enlace entre aplicaciones individuales y el núcleo de Linux.

Esto ha causado mucha indignación con la plataforma de Poettering en su conjunto, principalmente porque su naturaleza monolítica parece actuar en contra del “estilo UNIX” de código simple y modular.

Sea cual sea el bando que elijas en el debate sobre la legitimidad de Systemd, puede que caigas bajo su ala en este momento. Por lo tanto, necesitarás saber cómo usarlo, y no hay mejor manera de empezar que instalando un nuevo programa.

Arrancar y parar unidades

Systemd inicia, detiene, habilita y deshabilita “unidades”. Las unidades están compuestas por los servicios, puntos de montaje, dispositivos y sockets de tu ordenador. En estas instrucciones estarás trabajando con servicios (archivos. service), los archivos que representan programas en tu computadora que esperan ser accedidos para una tarea específica.

Varias distribuciones Linux tienen acceso a Hddtemp , una pequeña utilidad que comprueba la temperatura de un disco duro. Hddtemp tiene un archivo. service y puede ejecutarse como demonio, por lo que puedes iniciarlo manualmente y habilitarlo para que se inicie al arrancar. Es pequeña y no invasiva; puedes descargarla, probarla junto con Systemd, y borrarla más tarde si no la quieres cerca.

Systemctl es una utilidad de systemd que se encarga de controlar el sistema systemd y el gestor de servicios. Systemd es una colección de demonios de gestión del sistema, utilidades y bibliotecas que sirve como reemplazo del demonio init de System V. Systemd funciona como plataforma central de gestión y configuración para sistemas tipo UNIX.

En el ecosistema Linux, Systemd ha sido implementado en la mayoría de las distribuciones Linux estándar con algunas excepciones. Systemd es el proceso padre de todos los demás demonios a menudo, pero no siempre.

Administrar Servicios Linux Usando Systemctl

Este artículo tiene como objetivo arrojar luz sobre ” Cómo controlar el Sistema y Servicios ” en un sistema que ejecuta systemd.

Comenzando con Systemtd y Systemctl Básico

1. En primer lugar, compruebe si systemd está instalado en su sistema o no, y ¿cuál es la versión de Systemd instalada actualmente?

Está claro en el ejemplo anterior, que tenemos instalada la versión 215 de systemd.

2. Comprueba dónde están instalados los binarios y librerías de systemd y systemctl.

Comenzando con Systemtd y Systemctl Básico

1. En primer lugar, compruebe si systemd está instalado en su sistema o no, y ¿cuál es la versión de Systemd instalada actualmente?

Está claro en el ejemplo anterior, que tenemos instalada la versión 215 de systemd.

2. Comprueba dónde están instalados los binarios y librerías de systemd y systemctl.

3. 3. Compruebe si systemd se está ejecutando o no.

Nota : systemd se está ejecutando como demonio padre ( PID=1 ). En el comando anterior

Importante : Systemctl acepta servicios (.service ), punto de montaje (.mount ), sockets (.socket ) y dispositivos (.device ) como unidades.

7. Listar todas las unidades disponibles.

8. Lista todas las unidades en ejecución.

9. Listar todas las unidades fallidas.

10. Comprobar si una Unidad ( cron. service ) está habilitada o no?.

11. 11. Compruebe si una unidad o servicio se está ejecutando o no.

Controlar y Administrar Servicios Usando Systemctl

12. Lista todos los servicios (incluyendo habilitados y deshabilitados).

13. ¿Cómo puedo iniciar, reiniciar, detener, recargar y comprobar el estado de un servicio ( httpd. service ) en Linux.

Nota: Cuando usamos comandos como start , restart , stop y reload con systemctl, no obtendremos ninguna salida en la terminal, el único comando de estado imprimirá la salida.

14. Cómo activar un servicio y habilitar o deshabilitar un servicio en el arranque (servicio de autoarranque en el arranque del sistema).

15. Cómo enmascarar (imposibilitar el arranque) o desenmascarar un servicio ( httpd. service ).

16. 16. Como matar un servicio usando el comando systemctl.

Control y gestión de puntos de montaje mediante systemctl

17. Listar todos los puntos de montaje del sistema.

18 . ¿Cómo puedo montar, desmontar, volver a montar, recargar puntos de montaje del sistema y también comprobar el estado de los puntos de montaje en el sistema?

19. Cómo activar, habilitar o deshabilitar un punto de montaje en el arranque (montaje automático en el arranque del sistema).

20. 20. Cómo enmascarar (imposibilitando el arranque) o desenmascarar un punto de montaje en Linux.

Control y Gestión de Sockets usando Systemctl

21. Listar todos los sockets del sistema disponibles.

22. Cómo iniciar, reiniciar, detener, recargar y comprobar el estado de un socket (ejemplo: cups. socket ) en Linux.

23. Cómo activar un socket y habilitarlo o deshabilitarlo en el arranque (autostart socket at system boot).

24. Cómo enmascarar (imposibilitando el arranque) o desenmascarar un socket (cups. socket).

Si aprecias lo que hacemos aquí en TecMint, deberías considerar:

TecMint es el sitio comunitario de más rápido crecimiento y más confiable para cualquier tipo de Artículos, Guías y Libros de Linux en la web. Millones de personas visitan TecMint! para buscar o navegar por los miles de artículos publicados disponibles GRATUITAMENTE para todos.

Si le gusta lo que está leyendo, por favor considere comprarnos un café ( o 2 ) como muestra de agradecimiento.

Estamos agradecidos por su constante apoyo.

Una de las habilidades más importantes que cualquier novato en Systemd puede aprender es cómo administrar los servicios de su computadora. Para los propósitos de este artículo discutiremos lo básico: iniciar, detener, habilitar y deshabilitar servicios desde la línea de comandos de Linux.

Estas tareas no son difíciles de dominar, pero se convierten en una necesidad innegable cuando te ves forzado a detener un programa fuera de control o cuando quieres instalar una nueva aplicación.

¿Qué es Systemd?

Es muy probable que su ordenador Linux ejecute actualmente Systemd. Muchas distribuciones, incluyendo Arch Linux, Debian, Fedora, Red Hat y Ubuntu, lo utilizan por defecto. Algunas distribuciones serían difíciles o imposibles de ejecutar sin él instalado.

Systemd funciona sobre todo como un sustituto robusto del antiguo proyecto de init SysV que las distribuciones UNIX habían utilizado desde la década de 1980. Su principal desarrollador, Lennart Poettering, también ha afirmado que Systemd va más allá de las tareas de init y también puede actuar como plataforma de desarrollo y enlace entre aplicaciones individuales y el núcleo de Linux.

Esto ha causado mucha indignación con la plataforma de Poettering en su conjunto, principalmente porque su naturaleza monolítica parece actuar en contra del “estilo UNIX” de código simple y modular.

Sea cual sea el bando que elijas en el debate sobre la legitimidad de Systemd, puede que caigas bajo su ala en este momento. Por lo tanto, necesitarás saber cómo usarlo, y no hay mejor manera de empezar que instalando un nuevo programa.

Arrancar y parar unidades

El comando para gestionar las unidades systemd es systemctl .

Iniciar y detener servicios

Para iniciar un servicio systemd, utilice el comando systemctl start:

Puede dejar el sufijo. service. Por ejemplo, para iniciar el servidor apache en Ubuntu:

Para detener un servicio en ejecución:

$ sudo systemctl stop nombre. servicio

Por lo tanto, para detener el servidor apache en Ubuntu:

Reiniciar y recargar servicios

Para reiniciar un servicio en ejecución, utilice el comando restart:

Has leído todo sobre systemd , el nuevo demonio de inicio de Linux. Sabes lo que hace, y por qué. Ahora es el momento de profundizar y aprender cómo hacer que se siente y ruegue – o al menos iniciar, detener y obtener información sobre los servicios.

Activar y desactivar servicios

Si desea que un servicio se inicie automáticamente al arrancar el sistema, utilice el comando enable:

Para impedir que un servicio se inicie al arrancar el sistema:

La desactivación no detiene un servicio en ejecución.

Visualización del estado de un servicio

Para ver información sobre un servicio:

Esto le mostrará el estado del servicio y las primeras líneas del archivo de registro. Así, mientras el servicio está en ejecución es, la salida de

Para comprobar si un servicio está activo

$ sudo systemctl is-active nombre. servicio

Así, mientras el servicio apache2 se está ejecutando, la salida del comando systemctl is-active es :

Para comprobar si un servicio está activado:

$ sudo systemctl is-enabled nombre. servicio.

Visualización del estado del sistema

Todos los comandos que ha visto hasta ahora se utilizan para gestionar un único servicio. Cuando desee una visión general del estado del sistema, utilice el siguiente conjunto de comandos:

Para ver todos los tipos de unidades

Para listar todas las unidades instaladas, utilice list-unit-files

La salida sólo tiene dos columnas Archivo de unidad y Estado. El estado suele ser habilitado, deshabilitado, estático o enmascarado.

Estática : Significa que la unidad no puede activarse, realiza una acción puntual o es una dependencia de otra unidad y no puede ejecutarse por sí misma.

Enmascarada: Una unidad listada como enmascarada significa que es completamente inarrancable, ya que está vinculada a /dev/null . Esto se llama enmascarar la unidad. Esto impide que el servicio se inicie, manual o automáticamente.

Listar todos los servicios instalados

El comando systemctl list-unit-files con el filtr o-t o-type service sólo muestra el estado de los servicios instalados.

Para ver todas las unidades de servicio activas, utilice list-units con el filtro de servici o-t

La salida tiene las siguientes columnas :

UNIT : El nombre de la unidad de servicio systemd

LOAD : Muestra si la definición de la unidad se ha leído y cargado correctamente

  • ACTIVE : Describe si la unidad está activa.
  • SUB : Estado de activación de bajo nivel de la unidad, dando información más detallada sobre la unidad. Esto variará según el tipo de unidad.

DESCRIPTION : Descripción de la unidad de servicio.

Conclusión

Espero que esto te de una idea sobre el uso de systemctl para gestionar servicios en Linux. Si estás interesado en aprender más, puedes echarle un vistazo a este curso Linux Mastery.

Una de las habilidades más importantes que cualquier novato en Systemd puede aprender es cómo administrar los servicios de su computadora. Para los propósitos de este artículo discutiremos lo básico: iniciar, detener, habilitar y deshabilitar servicios desde la línea de comandos de Linux.

  • Estas tareas no son difíciles de dominar, pero se convierten en una necesidad innegable cuando te ves forzado a detener un programa fuera de control o cuando quieres instalar una nueva aplicación.
  • ¿Qué es Systemd?
  • Es muy probable que su ordenador Linux ejecute actualmente Systemd. Muchas distribuciones, incluyendo Arch Linux, Debian, Fedora, Red Hat y Ubuntu, lo utilizan por defecto. Algunas distribuciones serían difíciles o imposibles de ejecutar sin él instalado.
  • Systemd funciona sobre todo como un sustituto robusto del antiguo proyecto de init SysV que las distribuciones UNIX habían utilizado desde la década de 1980. Su principal desarrollador, Lennart Poettering, también ha afirmado que Systemd va más allá de las tareas de init y también puede actuar como plataforma de desarrollo y enlace entre aplicaciones individuales y el núcleo de Linux.
  • Esto ha causado mucha indignación con la plataforma de Poettering en su conjunto, principalmente porque su naturaleza monolítica parece actuar en contra del “estilo UNIX” de código simple y modular.

Conclusión

Arrancar y parar unidades

Systemd inicia, detiene, habilita y deshabilita “unidades”. Las unidades están compuestas por los servicios, puntos de montaje, dispositivos y sockets de tu ordenador. En estas instrucciones estarás trabajando con servicios (archivos. service), los archivos que representan programas en tu computadora que esperan ser accedidos para una tarea específica.

Varias distribuciones Linux tienen acceso a Hddtemp , una pequeña utilidad que comprueba la temperatura de un disco duro. Hddtemp tiene un archivo. service y puede ejecutarse como demonio, por lo que puedes iniciarlo manualmente y habilitarlo para que se inicie al arrancar. Es pequeña y no invasiva; puedes descargarla, probarla junto con Systemd, y borrarla más tarde si no la quieres cerca.

Systemctl es una utilidad de systemd que se encarga de controlar el sistema systemd y el gestor de servicios. Systemd es una colección de demonios de gestión del sistema, utilidades y bibliotecas que sirve como reemplazo del demonio init de System V. Systemd funciona como plataforma central de gestión y configuración para sistemas tipo UNIX.

En el ecosistema Linux, Systemd ha sido implementado en la mayoría de las distribuciones Linux estándar con algunas excepciones. Systemd es el proceso padre de todos los demás demonios a menudo, pero no siempre.

Administrar Servicios Linux Usando Systemctl

Este artículo tiene como objetivo arrojar luz sobre ” Cómo controlar el Sistema y Servicios ” en un sistema que ejecuta systemd.

Comenzando con Systemtd y Systemctl Básico

1. En primer lugar, compruebe si systemd está instalado en su sistema o no, y ¿cuál es la versión de Systemd instalada actualmente?

Está claro en el ejemplo anterior, que tenemos instalada la versión 215 de systemd.

2. Comprueba dónde están instalados los binarios y librerías de systemd y systemctl.

Habilitar un servicio para que se inicie automáticamente en el arranque

Comprobar si está activado

Evitar que un servicio se inicie en el arranque

¿Deshabilitó un servicio systemd, pero de alguna manera se inició de nuevo? Para evitar que un servicio se inicie manualmente, utilice el subcomando mask.

Los servicios enmascarados no se pueden iniciar con el comando systemctl start hasta que se desenmascaren.

A veces, puedes encontrar un proceso desconocido que se está ejecutando con el comando htop. Quieres detenerlo, pero no sabes a qué servicio systemd pertenece. En este caso, puedes ejecutar el siguiente comando

Este comando te dará una lista de las unidades de servicio systemd activas y los comandos utilizados para iniciarlas.

Gestión de niveles de ejecución

El concepto de niveles de ejecución se sustituye por objetivos en systemd. El objetivo. multiusuario es equivalente al nivel de ejecución 3 y el objetivo. gráfico es equivalente al nivel de ejecución 5. Aún puede utilizar el comando runlevel para mostrar el nivel de ejecución actual.

Utilice el siguiente comando para comprobar el estado del objetivo predeterminado, que por defecto suele ser el objetivo gráfico (nivel de ejecución 5).

Utilice el comando systemctl isolate para cambiar el objetivo. Por ejemplo, cambiar al objetivo multiusuario (nivel de ejecución 3):

Y para volver al objetivo gráfico (nivel de ejecución 5):

Para establecer multiuser. target como destino predeterminado, utilice el siguiente comando:

Este comando crea un enlace simbólico.

Si reinicias ahora, accederás al destino multiusuario.

Para obtener una lista de los destinos activos, ejecute

Gestión de registros

El paquete de software systemd incluye una utilidad journalctl que puede utilizarse para gestionar registros en Linux. Linux tradicionalmente guarda los registros en el directorio /var/log/. En una distribución de Linux con systemd, es posible que no pueda encontrar registros como los de correo postfix ( /var/log/mail. log ) en ese directorio.

Puede ver los registros recientes con el siguiente comando. Puede pulsar la tecla F para saltar a la página siguiente y la tecla B para volver a la página anterior. Pulse Q para salir.

Use grep para buscar registros relacionados con su término de búsqueda

Ver registros desde el arranque actual

Ver registros desde el arranque anterior

Aquí tienes un pequeño truco para mostrar los logs que se están generando en tiempo real.

Muestra los registros de una unidad, por ejemplo, la unidad de servicio ssh.

Para ver los registros de Postfix, ejecute

Algunos paquetes pueden estar configurados para guardar los registros en

openconnect. service es el servicio que inicia la conexión VPN en mi ordenador. Ahora si inicio transmission-daemon. service , openconnect. service se cerrará automáticamente, y viceversa.

Desea

Si quieres que el servicio B se inicie cuando se inicie el servicio A, puedes utilizar el parámetro Wants para que así sea. En la sección [Unit] de un archivo systemd. service, añade una línea como esta:

También puedes usar Before = o After = para especificar el orden.

A veces, puedes querer que el servicio B espere a que el servicio A se complete antes de iniciarse. Entonces puedes añadir las siguientes líneas en la sección [Servicio] del archivo b. service.

Esto le dice a b. service que espere 20 segundos.

Recuerda recargar systemd para que los cambios surtan efecto.

Ejecutar scripts /etc/rc. local

Si estás ejecutando una distribución Linux que utiliza Systemd, puede que te encuentres con que tus comandos en el archivo /etc/rc. local no se ejecutan al arrancar el sistema. El siguiente tutorial explica cómo habilitar el script /etc/rc. local para que se ejecute al iniciar el sistema.

Contabilidad

Systemd le permite comprobar cuánta CPU y memoria utiliza un servicio y cuántas tareas están siendo ejecutadas por el servicio. Si está utilizando una distribución Linux reciente como Ubuntu 20.04 , Debian 10 , RHEL 8 , la contabilidad está activada por defecto. En distribuciones Linux antiguas como Ubuntu 18.04, necesita habilitar manualmente la contabilidad. Digamos que desea habilitar la contabilidad para Nginx en Ubuntu 18.04, a continuación, siga las instrucciones a continuación.

Primero, creamos un directorio para almacenar las configuraciones personalizadas de systemd para Nginx.

Crear el archivo de configuración personalizada en este directorio. La extensión del archivo debe ser. conf .

A continuación, agregue las siguientes líneas en este archivo.

Guarda y cierra el archivo. A continuación, vuelve a cargar systemd.

No es necesario reiniciar Nginx. Ahora puede comprobar el estado de Nginx con:

Configuración Personalizada para el Servicio Systemd de Plantilla

Puede que hayas visto una plantilla de servicio systemd que contiene el símbolo @ como el servicio Syncthing.

Este tipo de servicio le permite ejecutar múltiples instancias. Por ejemplo, puede ejecutar Syncthing para dos usuarios con:

Si desea agregar configuración personalizada a este tipo de servicio, necesita crear una carpeta para cada uno de estos servicios.

Luego puede crear el archivo de configuración personalizada.

Después de guardar los cambios. Vuelva a cargar systemd.

Temporizadores Systemd

¿Qué pasa si no quieres que un servicio systemd se inicie automáticamente al arrancar el sistema, sino que se ejecute a una hora determinada? Puedes crear un temporizador systemd para el servicio systemd. Por ejemplo, he creado un servicio systemd ( /etc/systemd/system/iris. service) para el software de protección ocular Iris.

Claro que puedo hacer que se inicie automáticamente en el arranque con:

¿Y si quiero que se inicie sólo por la noche? Necesito crear un temporizador systemd.

Añade las siguientes líneas en este archivo. Este temporizador systemd iniciará el servicio iris. service a las 18:00:00 todos los días.

Guarde y cierre el archivo. A continuación, active este temporizador systemd.

Comprueba el estado de este temporizador.

Concluyendo

Ya está. Suscríbete a nuestro boletín gratuito para recibir los últimos tutoriales de Linux. También puedes seguirnos en Twitter o en nuestra página de Facebook.

En los últimos años, la mayoría de las distribuciones de Linux han cambiado su forma de arrancar. Anteriormente, el sysvinit estilo UNIX gobernó el gallinero aparte de algunos valores atípicos, como Ubuntu que hizo uso de Upstart para sus sistemas operativos. Recientemente, muchas distribuciones de Linux se han pasado al nuevo proceso systemd para gestionar el arranque y apagado del sistema.

Cómo trabajar con Systemd para gestionar servicios en un servidor

systemctl list-units – Este es un compañero del comando anterior en el que se enumeran las unidades cargadas y un poco de información sobre ellas. systemctl poweroff – Este comando apaga el ordenador. systemctl reboot – Este comando reinicia el ordenador. Con esto finaliza nuestro recorrido por las diversas funciones del comando systemctl de systemd y cómo usarlo para administrar los servicios que se ejecutan en tu sistema. Como con la mayoría de los comandos, hay más información en la página man de systemctl de la que hemos incluido aquí. Así que vale la pena revisarla para ver qué más puedes hacer.

Un sistema Linux proporciona una variedad de servicios de sistema (como gestión de procesos, login , syslog, cron, etc.) y servicios de red (como login remoto, correo electrónico, impresoras, alojamiento web, almacenamiento de datos, transferencia de archivos, resolución de nombres de dominio (usando DNS), asignación dinámica de direcciones IP (usando DHCP), y mucho más).

Técnicamente, un servicio es un proceso o grupo de procesos (comúnmente conocidos como demonios) que se ejecutan continuamente en segundo plano, esperando a que lleguen peticiones (especialmente de clientes).

Linux admite diferentes formas de gestionar (iniciar, detener, reiniciar, activar el inicio automático al arrancar el sistema, etc.) los servicios, normalmente a través de un gestor de procesos o servicios. La mayoría, si no todas, las distribuciones modernas de Linux utilizan ahora el mismo gestor de procesos: systemd .

Systemd es un gestor de sistemas y servicios para Linux; un reemplazo directo para el proceso init, que es compatible con los scripts init de SysV y LSB y el comando systemctl es la herramienta principal para gestionar systemd .

En esta guía, demostraremos cómo listar todos los servicios en ejecución bajo systemd en Linux.

Listado de servicios en ejecución bajo systemd en Linux

Cuando ejecutas el comando systemctl sin ningún argumento, mostrará una lista de todas las unidades cargadas de systemd (lee la documentación de systemd para más información sobre las unidades de systemd) incluyendo los servicios, mostrando su estado (si están activos o no).

Para listar todos los servicios cargados en su sistema (ya sean activos; en ejecución, salidos o fallidos, utilice el subcomando list-units y el modificado r-type con un valor de service.

Listar todos los servicios bajo Systemd

En los últimos años, la mayoría de las distribuciones de Linux han cambiado la forma en que se inician. Anteriormente, el estilo UNIX sysvinit gobernaba el gallinero aparte de algunos valores atípicos, como Ubuntu que hizo uso de Upstart para sus sistemas operativos. Recientemente, muchas distribuciones de Linux se han pasado al nuevo proceso systemd para gestionar el arranque y apagado del sistema.

Cómo trabajar con Systemd para gestionar servicios en un servidor

Para empezar, para aquellos que no estén familiarizados, echaremos un vistazo rápido a cómo arranca un sistema Linux. Para ello, la BIOS cargará primero el gestor de arranque, que en la mayoría de los sistemas Linux modernos es GRUB 2. El trabajo del gestor de arranque es encontrar e iniciar el Kernel Linux, que actúa como interfaz entre el software y el hardware del ordenador. Una vez arrancado, el Kernel busca e inicia el sistema init que es el responsable de inicializar los diferentes servicios y software del sistema. Al trabajar con el sistema sysvinit, probablemente estés familiarizado con el uso de los scripts en /etc/init. d para iniciar y detener servicios junto con el comando service. Systemd reemplaza esto completamente y tiene su propio comando y sintaxis para iniciar y detener servicios. Para la mayoría del trabajo que harás con systemd, usarás el comando systemctl. Así que vamos a utilizar algunos ejemplos para explicar cómo funciona systemctl. Específicamente, vamos a usar el servicio Apache2, pero obviamente puedes reemplazar Apache2 con el nombre del servicio que desees administrar. Tenga en cuenta aquí que systemctl necesita ser llamado como usuario root o usando sudo desde una cuenta de usuario con los permisos sudo apropiados. systemctl start apache2 – Comenzando con uno simple aquí, el comando de arriba inicia el servicio Apache2. systemctl stop apache2 – Como arriba, bonito y simple, esto detiene el servicio Apache2 en ejecución. systemctl enable apache2 – Este comando habilita el servicio Apache2 para que se inicie automáticamente en el arranque. systemctl disable apache2 – Al igual que antes, este comando deshabilita el servicio Apache2 para que no se inicie automáticamente al arrancar el sistema. systemctl status – Este comando muestra el estado general del sistema, incluyendo un árbol de procesos que muestra los servicios iniciados por systemd. systemctl status apache2 – Este comando muestra información más detallada sobre el estado de Apache2, incluyendo si se está ejecutando o no, así como una salida truncada del archivo de registro de la última vez que se inició. Esto puede ser útil para ver la razón por la que un servicio puede haber fallado al iniciarse systemctl statu s-l apache2 – Este comando proporciona más o menos la misma salida que el anterior, pero también proporciona la salida completa del registro para ayudar a diagnosticar problemas. systemctl reload apache2 – Este comando recargaría los archivos de configuración para Apache2 sin reiniciarlo. Tenga en cuenta que no todos los servicios son capaces de recargar su configuración sin reiniciarse, por lo que esto puede no ser una opción para algunos servicios. systemctl restart apache2 – Este comando detendría Apache2 y luego lo iniciaría de nuevo. systemctl mask apache2 – La opción mask se utiliza para informar a systemctl que no debería ser capaz de iniciar el servicio. Así, incluso los intentos de iniciarlo manualmente serán bloqueados. systemctl unmask apache2 – Como probablemente pueda adivinar, la opción unmask invierte la función de la opción mask. systemctl list-unit-files – Este comando lista cualquier archivo de unidad que systemd pueda encontrar. Los archivos de unidad son los archivos de instrucciones que le dicen a systemd lo que necesita hacer para iniciar/detener un servicio. Estos archivos se listan junto con su estado: “enabled” para los servicios que se iniciarán en el arranque, “disabled” para los servicios que no se iniciarán, “masked” para los servicios que ha enmascarado y “static” para los archivos que systemd no puede habilitar. Esto es útil para encontrar el nombre correcto de un servicio con el fin de gestionarlo.

Lista de servicios en ejecución en Systemd

Si utiliza con frecuencia el comando anterior, puede crear un comando alias en su archivo

/.bashrc como se muestra, para invocarlo fácilmente.

A continuación, añada la siguiente línea en la lista de alias como se muestra en la captura de pantalla.

Crear un alias para un comando largo

Guarde los cambios en el archivo y ciérrelo. A partir de ahora, utilice el comando “running_services” para ver una lista de todos los servicios cargados y en ejecución activa en su servidor.

Ver todos los servicios en ejecución

Además, un aspecto importante de los servicios es el puerto que utilizan. Para determinar el puerto en el que está escuchando un proceso demonio, puede utilizar las herramientas netstat o ss como se muestra.

Donde la bander a-l significa imprimir todos los sockets a la escucha, – t muestra todas las conexiones TCP, – u muestra todas las conexiones UDP, – n significa imprimir los números numéricos de los puertos (en lugar de los nombres de las aplicaciones) y-p significa mostrar el nombre de la aplicación.

La quinta columna muestra el socket: Dirección local:Puerto. En este caso, el proceso zabbix_agentd está escuchando en el puerto 10050 .

Determinar el puerto del proceso

Además, si su servidor tiene un servicio de cortafuegos en ejecución, que controla cómo bloquear o permitir el tráfico hacia o desde servicios o puertos seleccionados, puede listar los servicios o puertos que se han abierto en el cortafuegos, utilizando el comando firewall-cmd o ufw (dependiendo de las distribuciones de Linux que esté utilizando) como se muestra.

Listar Servicios y Puertos Abiertos en el Firewall

¡Eso es todo por ahora! En esta guía, hemos demostrado cómo ver los servicios en ejecución bajo systemd en Linux. También cubrimos cómo comprobar el puerto en el que un servicio está escuchando y cómo ver los servicios o puertos abiertos en el firewall del sistema. ¿Tienes algún añadido que hacer o alguna pregunta? Si es así, contáctanos usando el formulario de comentarios de abajo.

Si Aprecias Lo Que Hacemos Aqui En TecMint, Deberias Considerarlo:

TecMint es el sitio de la comunidad de más rápido crecimiento y de mayor confianza para cualquier tipo de Linux Artículos, Guías y Libros en la web. Millones de personas visitan TecMint! para buscar o navegar por los miles de artículos publicados disponibles GRATUITAMENTE para todos.

Si le gusta lo que está leyendo, por favor considere comprarnos un café ( o 2 ) como muestra de agradecimiento.

Estamos muy agradecidos por su constante apoyo.

openconnect. service es el servicio que inicia la conexión VPN en mi ordenador. Ahora si inicio transmission-daemon. service , openconnect. service se cerrará automáticamente, y viceversa.

Desea

Si quieres que el servicio B se inicie cuando se inicie el servicio A, puedes utilizar el parámetro Wants para conseguirlo. En la sección [Unit] de un archivo systemd. service, añade una línea como esta:

También puedes usar Before = o After = para especificar el orden.

A veces, puedes querer que el servicio B espere a que el servicio A se complete antes de iniciarse. Entonces puedes añadir las siguientes líneas en la sección [Servicio] del archivo b. service.

Esto le dice a b. service que espere 20 segundos.

Recuerda recargar systemd para que los cambios surtan efecto.

Ejecutar scripts /etc/rc. local

Systemd funciona sobre todo como un sustituto robusto del antiguo proyecto de init SysV que las distribuciones UNIX habían utilizado desde la década de 1980. Su principal desarrollador, Lennart Poettering, también ha afirmado que Systemd va más allá de las tareas de init y también puede actuar como plataforma de desarrollo y enlace entre aplicaciones individuales y el núcleo de Linux.

Esto ha causado mucha indignación con la plataforma de Poettering en su conjunto, principalmente porque su naturaleza monolítica parece actuar en contra del “estilo UNIX” de código simple y modular.

Sea cual sea el bando que elijas en el debate sobre la legitimidad de Systemd, puede que caigas bajo su ala en este momento. Por lo tanto, necesitarás saber cómo usarlo, y no hay mejor manera de empezar que instalando un nuevo programa.

Arrancar y parar unidades

Habilitar un servicio para que se inicie automáticamente en el arranque

Comprobar si está activado

Evitar que un servicio se inicie en el arranque

¿Deshabilitó un servicio systemd, pero de alguna manera se inició de nuevo? Para evitar que un servicio se inicie manualmente, utilice el subcomando mask.

Los servicios enmascarados no se pueden iniciar con el comando systemctl start hasta que se desenmascaren.

A veces, puedes encontrar un proceso desconocido que se está ejecutando con el comando htop. Quieres detenerlo, pero no sabes a qué servicio systemd pertenece. En este caso, puedes ejecutar el siguiente comando

Este comando te dará una lista de las unidades de servicio systemd activas y los comandos utilizados para iniciarlas.

Gestión de niveles de ejecución

El concepto de niveles de ejecución se sustituye por objetivos en systemd. El objetivo. multiusuario es equivalente al nivel de ejecución 3 y el objetivo. gráfico es equivalente al nivel de ejecución 5. Aún puede utilizar el comando runlevel para mostrar el nivel de ejecución actual.

Utilice el siguiente comando para comprobar el estado del objetivo predeterminado, que por defecto suele ser el objetivo gráfico (nivel de ejecución 5).

Utilice el comando systemctl isolate para cambiar el objetivo. Por ejemplo, cambiar al objetivo multiusuario (nivel de ejecución 3):

Y para volver al objetivo gráfico (nivel de ejecución 5):

Para establecer multiuser. target como destino predeterminado, utilice el siguiente comando:

Este comando crea un enlace simbólico.

Si reinicias ahora, accederás al destino multiusuario.

Para obtener una lista de los destinos activos, ejecute

Gestión de registros

El paquete de software systemd incluye una utilidad journalctl que puede utilizarse para gestionar registros en Linux. Linux tradicionalmente guarda los registros en el directorio /var/log/. En una distribución de Linux con systemd, es posible que no pueda encontrar registros como los de correo postfix ( /var/log/mail. log ) en ese directorio.

Puede ver los registros recientes con el siguiente comando. Puede pulsar la tecla F para saltar a la página siguiente y la tecla B para volver a la página anterior. Pulse Q para salir.

Use grep para buscar registros relacionados con su término de búsqueda

Ver registros desde el arranque actual

Ver registros desde el arranque anterior

Aquí tienes un pequeño truco para mostrar los logs que se están generando en tiempo real.

Muestra los registros de una unidad, por ejemplo, la unidad de servicio ssh.

Para ver los registros de Postfix, ejecute

Algunos paquetes pueden estar configurados para guardar los registros en

openconnect. service es el servicio que inicia la conexión VPN en mi ordenador. Ahora si inicio transmission-daemon. service , openconnect. service se cerrará automáticamente, y viceversa.

Desea

Si quieres que el servicio B se inicie cuando se inicie el servicio A, puedes utilizar el parámetro Wants para que así sea. En la sección [Unit] de un archivo systemd. service, añade una línea como esta:

También puedes usar Before = o After = para especificar el orden.

A veces, puedes querer que el servicio B espere a que el servicio A se complete antes de iniciarse. Entonces puedes añadir las siguientes líneas en la sección [Servicio] del archivo b. service.

Esto le dice a b. service que espere 20 segundos.

Recuerda recargar systemd para que los cambios surtan efecto.

Ejecutar scripts /etc/rc. local

Si estás ejecutando una distribución Linux que utiliza Systemd, puede que te encuentres con que tus comandos en el archivo /etc/rc. local no se ejecutan al arrancar el sistema. El siguiente tutorial explica cómo habilitar el script /etc/rc. local para que se ejecute al iniciar el sistema.

Contabilidad

Systemd le permite comprobar cuánta CPU y memoria utiliza un servicio y cuántas tareas están siendo ejecutadas por el servicio. Si está utilizando una distribución Linux reciente como Ubuntu 20.04 , Debian 10 , RHEL 8 , la contabilidad está activada por defecto. En distribuciones Linux antiguas como Ubuntu 18.04, necesita habilitar manualmente la contabilidad. Digamos que desea habilitar la contabilidad para Nginx en Ubuntu 18.04, a continuación, siga las instrucciones a continuación.

Primero, creamos un directorio para almacenar las configuraciones personalizadas de systemd para Nginx.

Crear el archivo de configuración personalizada en este directorio. La extensión del archivo debe ser. conf .

A continuación, agregue las siguientes líneas en este archivo.

Guarda y cierra el archivo. A continuación, vuelve a cargar systemd.

No es necesario reiniciar Nginx. Ahora puede comprobar el estado de Nginx con:

Configuración Personalizada para el Servicio Systemd de Plantilla

Puede que hayas visto una plantilla de servicio systemd que contiene el símbolo @ como el servicio Syncthing.

Este tipo de servicio le permite ejecutar múltiples instancias. Por ejemplo, puede ejecutar Syncthing para dos usuarios con:

Si desea agregar configuración personalizada a este tipo de servicio, necesita crear una carpeta para cada uno de estos servicios.

Luego puede crear el archivo de configuración personalizada.

Después de guardar los cambios. Vuelva a cargar systemd.

Temporizadores Systemd

¿Qué pasa si no quieres que un servicio systemd se inicie automáticamente al arrancar el sistema, sino que se ejecute a una hora determinada? Puedes crear un temporizador systemd para el servicio systemd. Por ejemplo, he creado un servicio systemd ( /etc/systemd/system/iris. service) para el software de protección ocular Iris.

Claro que puedo hacer que se inicie automáticamente en el arranque con:

¿Y si quiero que se inicie sólo por la noche? Necesito crear un temporizador systemd.

Añade las siguientes líneas en este archivo. Este temporizador systemd iniciará el servicio iris. service a las 18:00:00 todos los días.

Guarde y cierre el archivo. A continuación, active este temporizador systemd.

Comprueba el estado de este temporizador.

Concluyendo

Ya está. Suscríbete a nuestro boletín gratuito para recibir los últimos tutoriales de Linux. También puedes seguirnos en Twitter o en nuestra página de Facebook.

En los últimos años, la mayoría de las distribuciones de Linux han cambiado su forma de arrancar. Anteriormente, el sysvinit estilo UNIX gobernó el gallinero aparte de algunos valores atípicos, como Ubuntu que hizo uso de Upstart para sus sistemas operativos. Recientemente, muchas distribuciones de Linux se han pasado al nuevo proceso systemd para gestionar el arranque y apagado del sistema.

Cómo trabajar con Systemd para gestionar servicios en un servidor

systemctl list-units – Este es un compañero del comando anterior en el que se enumeran las unidades cargadas y un poco de información sobre ellas. systemctl poweroff – Este comando apaga el ordenador. systemctl reboot – Este comando reinicia el ordenador. Con esto finaliza nuestro recorrido por las diversas funciones del comando systemctl de systemd y cómo usarlo para administrar los servicios que se ejecutan en tu sistema. Como con la mayoría de los comandos, hay más información en la página man de systemctl de la que hemos incluido aquí. Así que vale la pena revisarla para ver qué más puedes hacer.

Un sistema Linux proporciona una variedad de servicios de sistema (como gestión de procesos, login , syslog, cron, etc.) y servicios de red (como login remoto, correo electrónico, impresoras, alojamiento web, almacenamiento de datos, transferencia de archivos, resolución de nombres de dominio (usando DNS), asignación dinámica de direcciones IP (usando DHCP), y mucho más).

Técnicamente, un servicio es un proceso o grupo de procesos (comúnmente conocidos como demonios) que se ejecutan continuamente en segundo plano, esperando a que lleguen peticiones (especialmente de clientes).

Linux admite diferentes formas de gestionar (iniciar, detener, reiniciar, activar el inicio automático al arrancar el sistema, etc.) los servicios, normalmente a través de un gestor de procesos o servicios. La mayoría, si no todas, las distribuciones modernas de Linux utilizan ahora el mismo gestor de procesos: systemd .

Systemd es un gestor de sistemas y servicios para Linux; un reemplazo directo para el proceso init, que es compatible con los scripts init de SysV y LSB y el comando systemctl es la herramienta principal para gestionar systemd .

En esta guía, demostraremos cómo listar todos los servicios en ejecución bajo systemd en Linux.

Listado de servicios en ejecución bajo systemd en Linux

Cuando ejecutas el comando systemctl sin ningún argumento, mostrará una lista de todas las unidades cargadas de systemd (lee la documentación de systemd para más información sobre las unidades de systemd) incluyendo los servicios, mostrando su estado (si están activos o no).

Para listar todos los servicios cargados en su sistema (ya sean activos; en ejecución, salidos o fallidos, utilice el subcomando list-units y el modificado r-type con un valor de service.

Listar todos los servicios bajo Systemd