Bir Java uygulaması için bir systemd birim dosyası yazıyorum ve başlatmak için kullanılan Java sürümünü kontrol etmek istiyorum. (Basitleştirilmiş) hizmet dosyam
[Service]
Type=simple
EnvironmentFile=%h/Documents/apps/app/app-%i/app.cfg
ExecStart=${JAVA_HOME}/bin/java ${JAVA_OPTS} -jar %h/Documents/apps/app/app-%i/myapp.jar
SuccessExitStatus=143
Yeniden başlatmaya çalışırken bir hata alıyorum
Apr 28 12:43:37 rombert systemd[1613]: [/home/robert/.config/systemd/user/app@.service:7] Executable path is not absolute, ignoring: ${JAVA_HOME}/bin/java ${JAVA_OPT
Apr 28 12:43:37 rombert systemd[1613]: app@1.0.0.service lacks both ExecStart= and ExecStop= setting. Refusing.
Bunun JAVA_HOME
doğru ayarlandığını biliyorum ; Eğer ExecStart
çizgi ile başlamak /usr/bin/java
ve değiştirmek gibi bir şey eklemek eğer ben -DsomeOption=${JAVA_HOME}
sadece iyi görebilirsiniz.
Açık geçici çözüm bir sarıcı komut dosyası oluşturmaktır, ancak bir hizmet dosyası kullanma noktasını yendiğini hissediyorum.
Birim dosyası kullanarak Java uygulamam için JAVA_HOME'u nasıl ayarlayabilirim?