Encuentre la ubicación de un servicio systemd


62

Hay muchos lugares diferentes donde se pueden colocar los archivos de la unidad systemd. ¿Hay una manera rápida y fácil de preguntarle a systemd de dónde lee la declaración de un servicio, dado solo el nombre del servicio?

Respuestas:


75

Para las unidades que se definen en archivos reales, estáticos, esto se puede ver en systemctl status:

$ systemctl status halt-local.service
● halt-local.service - /usr/sbin/halt.local Compatibility
   Loaded: loaded (/lib/systemd/system/halt-local.service; static)
   Active: inactive (dead)

Pero hay unidades que no están definidas por archivos, por ejemplo, con systemd-croninstalado. Estos no tienen una ubicación útil listada con status:

$ systemctl status cron-jojo-0.timer
● cron-jojo-0.timer - [Cron] "*/10 * * * * ..."
   Loaded: loaded (/var/spool/cron/crontabs/jojo)
   Active: active (waiting) since Mon 2015-05-18 14:53:01 UTC; 9min ago

En cualquier caso, sin embargo, el FragmentPathcampo es educar:

$ systemctl show -p FragmentPath cron-daily.service
FragmentPath=/lib/systemd/system/cron-daily.service
$ systemctl show -p FragmentPath cron-jojo-0.service
FragmentPath=/run/systemd/generator/cron-jojo-0.service
$ systemctl show -p FragmentPath halt-local.service
FragmentPath=/lib/systemd/system/halt-local.service
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.