【发布时间】:2019-01-22 07:02:19
【问题描述】:
我可以从 shell 执行确切的 ExecStart 命令并且它可以工作,但是由于某些原因在这个服务文件中这不起作用 - 有什么想法吗?
错误:
Failed to start previewapi.service: Unit previewapi.service is not loaded properly: Exec format error.
See system logs and 'systemctl status previewapi.service' for details.
systemd .service 文件:
[Unit]
Description = preview-api
After = network.target
[Service]
WorkingDirectory=/srv/previewapi
ExecStart = /usr/bin/java -jar /srv/previewapi/gn-preview-api-0.1.0-SNAPSHOT-standalone.jar
ExecStop = kill -INT $MAINPID
ExecReload = kill -TERM $MAINPID
# In case if it gets stopped, restart it immediately
Restart = always
Type = simple
[Install]
# multi-user.target corresponds to run level 3
# roughtly meaning wanted by system start
WantedBy = multi-user.target
Ubuntu 18.04。
sudo journalctl -u previewapi 说:
Aug 15 10:00:28 ubuntu-bionic systemd[1]: /etc/systemd/system/previewapi.service:18: Executable path is not absolute:
【问题讨论】:
-
您可能需要将参数放在引号中:
/usr/bin/java "-jar /srv/previewapi/gn-preview-api-0.1.0-SNAPSHOT-standalone.jar" -
@assylias 试过了——同样的错误。但是谢谢你的建议!