Symlink come WorkingDirectory nel servizio systemd


8

Ho un servizio con il WorkingDirectory=/srv/ctr/currentquale è un collegamento simbolico.

Sembra che il servizio non rilevi le modifiche nel collegamento simbolico al riavvio. Il registro degli errori indica /srv/ctr/releases/69la posizione ma /srv/ctr/currentindica /srv/ctr/releases/72. C'è un modo in cui posso ottenere systemd per raccogliere sulla nuova modifica della directory?


Ci hai provato systemctl daemon-reload? Potrebbe innescare una rilettura del link simbolico.
Morloch,

@morloch si l'ho provato. Il servizio che sto eseguendo è resque . Mi chiedo se il percorso sia in qualche modo memorizzato nel lavoro stesso.
Reed G. Law,

3
Prova ad aggiungere ExecStartPre=/bin/pwd -Pal tuo servizio, ricaricare / riavviare il servizio e controllare i registri. Almeno allora saprai se è systemd o
resque

@morloch ha funzionato e ora in qualche modo sta trovando la directory giusta.
Reed G. Law,

Ho avuto lo stesso problema. SystemD risolverà SymLink nel percorso effettivo e lo utilizzerà. Non ho trovato un modo per disabilitare questo comportamento. Ora ho semplicemente spostato le mie cose sul target dei link simbolici e ho creato un nuovo link nell'altra direzione ...
Martin Rauscher,

Risposte:


2

Forse prova ad aggiungere:

Environment = PWD=/srv/ctr/current

(A proposito, davvero felice di vedere qualcun altro utilizzare /srv/*per i loro servizi.)


Vecchia domanda, ma volevo dire che questo ha funzionato per me sul sistema di Centos 8.1 mentre il commento di @ morloch no.
Yoopergeek,

0

modificare il file dell'unità systemd in modo che sia il seguente:

  • WorkingDirectory = / srv / ctr /
  • ExecStart = / bin / start current o ExecStart = cd current && / bin / start
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.