【问题标题】:systemd service does not runsystemd 服务不运行
【发布时间】:2017-04-03 10:57:58
【问题描述】:

我启用了以下 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 上运行它。

谢谢,

迈克

【问题讨论】:

  • 您是否有类似“按任意键退出”的情况,即您的服务因等待用户输入而被阻止?

标签: java dropwizard systemd


【解决方案1】:

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

我的配置如下:

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

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

WorkingDirectory=/opt/myservice

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-22
    • 1970-01-01
    • 2021-07-01
    • 2017-08-01
    • 2019-08-19
    • 1970-01-01
    • 1970-01-01
    • 2020-12-11
    相关资源
    最近更新 更多