sábado, 6 de enero de 2024

Directorio systemd

Posted by q3it on sábado, enero 06, 2024 in


Como comentaba en anteriores post las nuevas destrucciones utilizan systemd y no init.d, en esas distribuciones no vamos a utilizar /etc/init.d y el nivel de ejecución. Vamos a utilizar el /etc/systemd que contendrá las configuraciones de los servicios y del sistema.
 
Esta configuración de los servicios va a contener que dependencias y cómo y cuándo se van a ejecutar. Vamos a tener ficheros que van a terminar en .servis con el nombre del servicio y van a tener tres categorías:
  • Una unidad, que es donde vamos a definir la descripción y algunas condiciones.
  • El servicio, que es donde vamos a indicar cómo se relee, ejecuta, o cómo parar la ejecución.
  • Y por último indicar cuándo se ejecuta dentro de la categoría de Install.
También vamos a tener directorios por cada uno de los niveles de ejecución. Con este formato runlevel.target.wats/ y dentro va a haber estos ficheros de servicio.
 
Si nosotros hacemos ls dentro del directorio /etc/systemd/ vamos a ver ficheros de configuración.

 
Si abrimos por ejemplo resolved.conf vemos como podríamos definir estáticamente los DNS para nuestro servidor.
 
 
A nosotros lo que nos interesa es el directorio system/ que es donde vamos a tener los servicios que se van a ejecutar por ejemplo, ssh, syslog, etc.
 
 
Si abrimos uno de ellos vamos a ver las tres categorías, la unidad que describe para que es este servicio, cuando se va a ejecutar y otra condición si el fichero no existe no se va a ejecutar.
 
Entonces si se ejecuta vamos a tener la segunda categoría, donde vamos a tener un fichero con variables, por ejemplo ciertas variables que le vamos a pasar cuando nosotros lo vamos a iniciar, recargar, matar y reiniciar. 
 
Y la última categoría indica cómo lo vamos a ejecutar o quién lo desea ejecutar. Además le podemos poner un alias para abreviar el llamado.
 
 
Si vamos al directorio multi-user.target.wants veremos todos los servicios que se van a ejecutar cuando entremos en este repositorio. Por ejemplo, un servidor de programación de tareas, un servidor vpn, etc.
 
 
Si nosotros abrimos uno de ellos por ejemplo, el servidor vpn que se llama openvpn veremos que tenemos las tres categorías.
 
 
Si listamos estos ficheros con ls -l vemos que son enlaces, y donde están realmente es en /lib/systemd/system/. Si nosotros queremos crear un servicio para nuestra aplicación, podemos crear dentro de este directorio un enlace o directamente lo podríamos escribir en /etc/systemd/system/, eso es como nosotros deseemos.