systemd service WorkingDirectory check túl hamar

Fórumok

Sziasztok!

Az alábbi problémába futottam bele, és egyelőre csak workaround megoldásom lett rá.
Azure temp storage-ot akarom használni, ami a /mnt alatt lakik, és alapból ext4.

adott 2 service:

  • reformat-tmpstorage.service:
    1. After=mnt.target
    2. umount /mnt
    3. mkfs.xfs
    4. mount /mnt
    5. mkdir /mnt/workdir
  • worker.service:
    • After=reformat-tmpstorage.service
    • WorkingDirectory=/mnt/workdir

A fenti kombinációban a worker.service nem indul el, ugyanis a cloud-init, meg egyéb dolgok is reszelnek a /mnt-n, így a boot logban a legelső umount /mnt előtt van egy stopped worker service, és ennyi. Gondolom a WorkingDirectory miatt a systemd lelövi, csak nem értem, miért a legelején ellenőriz, miért nem mondjuk az After-ben megadott service után teszteli a WorkingDirectory meglétét.

A workaround megoldásom az lett, hogy a WorkingDirectory ment a kukába a service file-ból, és magának a processnek adom meg bemeneti paraméterként.
Bárkinek van ötlete elegénsabb megoldásra? Jó lenne, ha nem a programba kellene ellenőrzéseket, meg egyéb extrákat beleírni, ha már van "szuperintelligens", "mindentudó" systemd...

Hozzászólások

Nincs valami az azurban ami olyan mint a google cloudban a custom startup script, ami lefut minden indulaskor, nem csak VM crealaskor?
Vagy miert nem rakod bele az rc.local-ba amit akarsz? Miert kell ehhez systemd script?

Azért, mert jó lenne látni az állapotát, a logokat, újraindítani, stb. stb. apache-ot, meg nginx-et sem szivesen indítanék rc.local-ból :)

A custom startup script sem biztos, hogy segítene azon a bajomon, hogy amint az adott diskhez hozzányúl valami, az oda mutató WorkingDirectory-t tartalmazó service-t a systemd nem hajlandó elindítani, hiába 2 perccel későb indulna az egyéb függőségek miatt, amikor már létezne az adott dir.

Egyébként minden bootnál lefut, de csak akkor van para, ha deallocate után indul, mert akkor a cloud init, meg az én servicem is hozzányúl a diskhez. sima reboot után tökéletesen indul...