2016-11-19 68 views
0

我已经中启用以下systemd文件: /etc/systemd/system/pirestservice.servicesystemd服务不运行

[Unit] 
Description=Raspberry Pi REST Service 
After=local-fs.target network.target 

[Service] 
Type=simple 
User=root 
ExecStart=/usr/local/piservice/startpiservice.sh 
Restart=always 

[Install] 
WantedBy=multi-user.target 

上面提到的shell脚本如下,并作出可执行。

#!/bin/bash 
sudo java -jar /usr/local/piservice/pirestservice-0.0.1-SNAPSHOT.jar server rest_metadata/template.yml 

如果我运行shell脚本,这dropwizard服务不启动。如果我重新启动,或者启动从命令行的服务,该服务展示了运行,如果我做的:

ps -ef | grep pirest 

我会看到分配给该进程的PID号.......无论其在....服务没有真正运行。我错过了什么?我只需要一个.service文件,还是有其他配置我缺少? .service文件是否应该位于另一个目录中?

在一天结束时,我只想让我的应用程序作为守护程序/后台服务运行。

仅供参考,我在安装Ubuntu Mate 16的Raspberry Pi3上运行此操作。

感谢,

迈克

+0

你有类似于“按任意键退出”的东西,即您的服务被阻止等待在用户输入? –

回答

0

,在路径java吗? 服务脚本能否正确找到你的Dropwizard配置文件?

我的配置是这样的:

[Service] 
ExecStart=/usr/bin/java -jar /opt/myservice/myservice.jar server /opt/myservice/application.yml 

注意,我使用绝对路径为Java二进制文件,并为Dropwizard配置文件。如果你不想硬编码你的配置文件的路径,尝试将其添加到服务文件中:

WorkingDirectory=/opt/myservice