如何从systemd服务文件中删除bash?并用解决以下问题的方法替换它?

时间:2019-02-23 09:07:44

标签: bash spring-boot systemd exit-code

钻孔细节警报: 我有一个systemd service文件,该文件使用bash文件启动服务。下面是有问题的服务文件:

[Unit]
Description=A program service
[Service]
User=root
#change this to your workspace
WorkingDirectory=/data/acloud/repository/lib
#path to executable. 
#executable is a bash script file I created to run the application jar file
ExecStart=/data/acloud/repository/lib/program.sh
SuccessExitStatus=143
TimeoutStopSec=10
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target

下面是我在上面的服务文件中使用的program.sh

#!/bin/bash
sudo java -XX:+UseG1GC -Xmx1g -Xms512m -jar abc-program-0.0.1-SNAPSHOT.jar

如果您想知道为什么创建单行bash脚本,那是因为我不知道在何处以及如何将 -XX,-Xms -Xmx 参数放在.service文件中

即使服务处于非活动状态,主PID状态也会显示为status=0/SUCCESS,并且在systemctl status命令输出的末尾,它会显示Started a program service?下面是它的显示方式:

ubuntu@ip-172-**-**-***:/data/acloud/repository/lib$ sudo systemctl status program
program.service - A program service
   Loaded: loaded (/etc/systemd/system/program.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Fri 2019-02-22 13:08:21 UTC; 45s ago
  Process: 27711 ExecStart=/data/acloud/repository/lib/program.sh (code=exited, status=0/SUCCESS)
 Main PID: 27711 (code=exited, status=0/SUCCESS)

Feb 22 13:08:21 ip-172-**-**-*** systemd[1]: Started A program service.

我相信使用bash会导致此问题,因为此处未处理退出代码。我该如何停止?

0 个答案:

没有答案