He instalado el pimd
servicio por medio de apt
. Esto viene con un systemd
archivo de unidad ascendente ( /lib/systemd/system/pimd.service
).
Quiero que el servicio se reinicie cuando, por algún motivo, se elimine, por lo tanto, deseo agregar la línea Restart = always
en el archivo de la unidad.
Sin embargo, no quiero modificar el archivo de la unidad aguas arriba.
¿Hay alguna solución para esto?
Respuestas:
Tienes dos opciones:
Copie el archivo de la unidad de
/lib/systemd/system/
a/etc/systemd/system/
.Y luego realice sus modificaciones
/etc/systemd/system/pimd.service
para anular por completo los archivos de la unidad proporcionados por el mantenedor del paquete.El comando
systemctl edit --full <service-name>
automatiza esto por ti.Puede alterar o agregar ajustes de configuración específicos para una unidad, sin tener que modificar los archivos de la unidad creando
.conf
archivos en un directorio desplegable,/etc/systemd/system/<unit-name>.<unit-type>.d/
es decir, crear un
/etc/systemd/system/pimd.service.d/restart.conf
El comando
systemctl edit <service-name>
realiza estos pasos por usted.Ver
man systemd.unit
fuente
systemctl edit <service-name>
systemctl edit --full <service-name>
.La documentación de RHEL recomienda dos formas:
/etc/systemd/system/[name-goes-here].service.d/config_name.conf
En este caso, el archivo debería contener algo como esto:
Esto es lo que
systemctl edit [name-goes-here]
hace, crea ese directorio yoverride.conf
dentro de él.Intentaría con la opción uno, pero ambas son opciones viables. De cualquier manera recuerda correr
systemctl daemon-reload
después de hacer los cambios.Documentación de RHEL sobre Creación y modificación de archivos de unidad systemd
fuente
Considere usar un script para leer la configuración ascendente, modificarla y escupirla al archivo desplegable.
Por ejemplo, uso Chef y aquí hay una pieza de ruby (biblioteca) que analiza el archivo de unidad de maratón systemd para obtener ExecStart original de él
Luego, en la receta, creo el archivo desplegable para agregar una opción a ExecStart
fuente