Enlace simbólico como WorkingDirectory en el servicio systemd


8

Tengo un servicio con el WorkingDirectory=/srv/ctr/currentcual es un enlace simbólico.

Parece que el servicio no detecta cambios en el enlace simbólico cuando se reinicia. El registro de errores informa /srv/ctr/releases/69como la ubicación pero /srv/ctr/currentapunta a /srv/ctr/releases/72. ¿Hay alguna forma en que pueda hacer que systemd detecte el nuevo cambio de directorio?


¿Lo has intentado systemctl daemon-reload? Podría desencadenar una nueva lectura del enlace simbólico.
morloch

@morloch sí, lo intenté. El servicio que estoy ejecutando es resque . Me pregunto si la ruta se almacena de alguna manera en el trabajo en sí.
Reed G. Law

3
Intente agregar ExecStartPre=/bin/pwd -Pa su servicio, vuelva a cargar / reiniciar el servicio y verifique los registros. Al menos entonces sabrás si es systemd o resque ...
morloch

@morloch que funcionó y ahora de alguna manera está encontrando el directorio correcto.
Reed G. Law

Tuve el mismo problema. SystemD resolverá el SymLink a la ruta real y lo usará. No he encontrado una manera de deshabilitar este comportamiento. Ahora simplemente he movido mis cosas al objetivo del enlace simbólico y creo un nuevo enlace en la otra dirección ...
Martin Rauscher

Respuestas:


2

Posiblemente intente agregar:

Environment = PWD=/srv/ctr/current

(Por cierto, estoy muy feliz de ver a alguien más usando /srv/*sus servicios).


Antigua pregunta, pero quería decir que esto funcionó para mí en el sistemad de Centos 8.1, mientras que el comentario de @morloch no.
Yoopergeek

0

modifique su archivo de unidad systemd para que sea el siguiente:

  • WorkingDirectory = / srv / ctr /
  • ExecStart = / bin / start current o ExecStart = cd current && / bin / start
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.