执行的系统强制目录

问题描述 投票:0回答:1

我有一个Java应用程序,我想创建一个系统服务以在启动时执行该jar。我知道如何为upstartSysV进行操作,但是我在systemd上遇到了麻烦。

困难的部分是,我需要从jar所在的目录中执行jar,以便在jar旁边拾取application.properties以及相对于jar位置的某些目录。

例如,采用以下结构:

+-var
   +-myapp
       +-app.jar
       +-app.log
       +-application.properties
       +-certificate.jks
       +-images
           +-img1.jpg

我想要执行jar的方法是:

$ cd /var/myapp
$ java -jar app.jar

因此,当我执行jar时,我在myapp目录中,它登录到app.log,然后拾取application.properties并读取certificate.jks。也可以找到目录images

我已经尝试将其作为systemd的单元文件]

 [Unit]
 Description=App Description
 After=network.target

 [Service]
 Type=simple
 User=sebasira
 WorkingDirectory=/var/myapp
 ExecStart=/usr/bin/java -jar app.jar
 SuccessExitStatus=143
 Restart=on-failure

 [Install]
 WantedBy=multi-user.target   

它运行jar文件,但不是从/var/myapp内部运行>

我该如何解决?

我有一个Java应用程序,我想创建一个系统服务以在启动时执行该jar。我知道如何为新贵和SysV做到这一点,但是我在systemd方面遇到了麻烦。困难的部分是我需要...

java spring-boot service systemd
1个回答
0
投票

制作一个类似/ var / myapp的shell脚本:

#!/bin/sh
# runMyJar.sh    
java  -Djava.awt.headless=true -jar /var/myapp/app.jar
© www.soinside.com 2019 - 2024. All rights reserved.