Dónde colocar los archivos de unidades systemd creados por el usuario

Dónde colocar los archivos de unidades systemd creados por el usuario

¿Dónde debería colocar el archivo systemd, por ejemplo, para Nginx nginx.serviceo algo así en Ubuntu 16.04?

Respuesta1

El lugar recomendado es/etc/systemd/system/nginx.service

Luego emita el comando:

systemctl enable nginx

Y finalmente

systemctl start nginx

Respuesta2

Por lo general, en Ubuntu, los archivos unitarios proporcionados por el paquete van en /lib/systemd/system/el directorio, por ejemplo, /lib/systemd/system/nginx.servicemientras que el usuario proporcionó o cualquier modificación de los archivos unitarios proporcionados por el paquete van en el /etc/systemd/system/directorio.

Ahora, para anular, puedes:

  • Nombra el archivo de la unidad como el paquete proporcionado, por ejemplo, para anular /lib/systemd/system/nginx.service, puedes crear el archivo /etc/systemd/system/nginx.servicey colocar las directivas allí.

  • O puede crear un fragmento directo que termine .confen un directorio que lleva el nombre del archivo de la unidad original y .dse agrega al nombre del directorio, por ejemplo, puede crear un archivo con el nombre /etc/systemd/system/nginx.service.d/override.confy colocar declaraciones allí.


Ahora, puede aprovechar el systemctl editcomando para hacer todas las cosas manuales por usted, es decir, creará el archivo de anulación necesario (al principio creará un archivo temporal (con directorio(s) intermedio(s) para fragmentos de código directos) y luego al guardarlo, se confirmará y rename()el archivo temporal se convertirá en el archivo final deseado), y solo necesita editar el archivo para agregar sus anulaciones.

Por ejemplo, para crear un fragmento de anulación para ngnx.service( /lib/systemd/system/nginx.service) mencionado anteriormente:

systemctl edit nginx.service

Por defecto utilizará el archivo /etc/systemd/system/nginx.service.d/override.conf. Si --fullse utiliza, /etc/systemd/system/nginx.servicese utilizará el archivo de reemplazo completo (el contenido original /lib/systemd/system/nginx.servicese copiará a este archivo).

También puede usarlo --runtimepara crear el fragmento /run/systemd/system/(al principio, un fragmento directo, luego completo --runtimey --fullno son mutuamente excluyentes) que, por supuesto, será temporal.

Obviamente puedes elegir el editor a utilizar, el orden de precedencia es:

$SYSTEMD_EDITOR > $EDITOR > $VISUAL > editor > nano > vim > vi

información relacionada