systemd服务不运行

时间:2016-11-19 18:42:40

标签: java dropwizard systemd

我启用了以下systemd文件:     /etc/systemd/system/pirestservice.service

[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上运行它。

谢谢,

麦克

1 个答案:

答案 0 :(得分:0)

java是否在路径上? 服务脚本可以正确找到您的Dropwizard配置文件吗?

我的配置如下:

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

请注意,我使用java二进制文件的绝对路径,以及Dropwizard配置文件。如果您不想硬编码配置文件的路径,请尝试在服务文件中添加:

WorkingDirectory=/opt/myservice