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:
- After=mnt.target
- umount /mnt
- mkfs.xfs
- mount /mnt
- 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...
- 971 megtekintés
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?
- A hozzászóláshoz be kell jelentkezni
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...
- A hozzászóláshoz be kell jelentkezni