钻孔细节警报:
我有一个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会导致此问题,因为此处未处理退出代码。我该如何停止?