【问题标题】:Jar as a Service in RHEL 8.2 - Not StartingRHEL 8.2 中的 Jar 即服务 - 未启动
【发布时间】:2020-09-11 20:04:47
【问题描述】:

我有一个 spring boot uber jar,需要在 RHEL 8.2 环境中作为服务运行。

/etc/systemd/system/myapp.service中创建的服务文件就这么简单:

[Unit]
Description=myapp

[Service]
User=appuser
WorkingDirectory=/home/appuser 
ExecStart=/usr/bin/java -Xmx256m -jar -Dspring.profiles.active=test /home/appuser/myapp.jar 
SuccessExitStatus=143
TimeoutStopSec=10
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

现在,当我尝试使用以下命令启动服务并检查状态时,出现以下错误:

[root@myappdev01 /etc/systemd/system]# sudo systemctl status myapp
myapp.service - myapp
   Loaded: loaded (/etc/systemd/system/myapp.service; disabled; vendor preset: disabled)
   Active: activating (auto-restart) (Result: exit-code) since Fri 2020-09-11 23:48:26 +04; 5s ago
  Process: 273497 ExecStart=/usr/bin/java -jar -Dspring.profiles.active=test /home/appuser/myapp.jar (code=exited, status=1/FAILURE)
 Main PID: 273497 (code=exited, status=1/FAILURE)

Sep 11 23:48:26 myappdev01.server systemd[1]: myapp.service: Main process exited, code=exited, status=1/FAILURE
Sep 11 23:48:26 myappdev01.server systemd[1]: myapp.service: Failed with result 'exit-code'.

journatlctl -u myapp.service 也没有多大帮助。

我在这里做错了什么?

【问题讨论】:

  • 尝试在 shell 中运行命令“/usr/bin/java -Xmx256m -jar -Dspring.profiles.active=test /home/appuser/myapp.jar”(或现在的任何命令)迅速的。有用吗?
  • 是的,这很有趣。该命令在 shell 上运行时有效。
  • 会是 SELinux 吗?会不会是某些东西的权限?
  • 我不知道。知道我可以尝试什么吗?
  • 您知道 SELinux 是否在您的机器上启用/强制执行吗? (我认为它在 RHEL 上默认为“开启”。)

标签: java linux spring-boot systemd


【解决方案1】:

您正在使用的 jar 需要直接位于 -jar 标志之后:

ExecStart=/usr/bin/java -Xmx256m -Dspring.profiles.active=test -jar /home/appuser/myapp.jar 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-30
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    • 2015-05-30
    • 1970-01-01
    • 2018-09-16
    相关资源
    最近更新 更多