无法启动systemd服务

时间:2016-12-01 19:14:22

标签: linux ubuntu spring-boot

我在数字海洋水滴中有一个弹簧启动可执行jar。我能够使用java -jar myapp.jar执行jar现在我想让我作为服务运行。

我已使用这些内容创建了文件 /etc/systemd/system/myapp.service

[Unit]
Description=myapp
After=syslog.target

[Service]
User=kevin
ExecStart=/var/myapp/myapp-backend-1.0-SNAPSHOT.jar
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

然后启用它以在系统启动时启动

systemctl enable myapp.service

我现在正在尝试启动服务

systemctl start myapp.service

但我收到此错误

  

无法启动myapp.service:未知单位:myapp.service   请参阅系统日志和系统状态myapp.service'详情。

运行systemctl status myapp.service会返回此信息:

Failed to get properties: No such interface ''

2 个答案:

答案 0 :(得分:1)

试试这个:

[Unit]
Description=myapp
After=syslog.target

[Service]
User=kevin
ExecStart=java -jar /var/myapp/myapp-backend-1.0-SNAPSHOT.jar
SuccessExitStatus=143
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

我已添加:

你在ExecStart中的

java -jar

重新启动=始终 =>如果java破解,systemd重启服务

RestartSec = 5 =>崩溃后服务重启avec 5秒

修改完成后,重新加载systemd守护程序:

systemctl daemon-reload

启动时启用:

systemctl enable myapp.service

现在就开始:

systemctl start myapp.service

答案 1 :(得分:0)

您需要ExecStart中提到的jar的包装器脚本来处理启动,停止和重启方法。

可以找到详尽的说明和示例脚本here