2016-12-01 137 views
1

我有一个数字海洋液滴中的弹簧启动可执行文件。我能够使用java -jar myapp.jar执行罐子现在我想让我作为服务运行。无法启动systemd服务

我创建的文件/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 

但我' m如果这个错误

Failed to start myapp.service: Unknown unit: myapp.service See system logs and 'systemctl status myapp.service' for details.

运行systemctl status myapp.service回报这样的:

Failed to get properties: No such interface '' 

回答

0

你需要一个包装脚本为ExecStart提到的处理启动,停止和重新启动方法的罐子。

广泛的说明和示例脚本可以发现here

0

试试这个:

[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 

我有加:

的java在您选择的罐子 ExecStart

重新启动=总是 =>如果java破解, systemd重新启动服务

RestartSec = 5 =>碰撞服务重启AVEC5秒

您选择修改后,重新装入systemd守护程序后:

systemctl daemon-reload 

开启启动:

systemctl enable myapp.service 

从现在开始:

systemctl start myapp.service 
+0

不过getiing此错误: 无法启动myapp.service:未知单位:myapp.service 查看系统日志和细节 'systemctl状态myapp.service'。 – kev

+1

可以在systemctl重启myapp.service之后加入“systemctl -xn”的输出吗? –