2
環境設定された実行可能パスを使用してsystemdユニットファイルを作成する
Javaアプリケーション用のsystemdユニットファイルを作成していますが、起動に使用するJavaのバージョンを制御したいと思います。私の(簡略化された)サービスファイルは [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 起動しようとするとエラーが返されます 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. 私はそれJAVA_HOMEが正しく設定されていることを知っています。ExecStart最初に行を変更してから/usr/bin/java、それを-DsomeOption=${JAVA_HOME}うまく追加できるように追加すると、 明らかな回避策はラッパースクリプトを作成することですが、サービスファイルを使用するポイントを無効にすると感じています。 ユニットファイルを使用してJavaアプリケーションのJAVA_HOMEを設定するにはどうすればよいですか?