首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在编写linux服务时出现Exec格式错误?

为什么在编写linux服务时出现Exec格式错误?
EN

Stack Overflow用户
提问于 2019-07-14 16:08:02
回答 2查看 29.2K关注 0票数 18

我正在编写一个linux服务,以便将我的springboot web应用程序部署为服务。这是服务文件springboot.service

代码语言:javascript
复制
[Unit]
Description=My Webapp Java REST Service

[Service]
User=ubuntu
# The configuration file application.properties should be here:

#change this to your workspace
WorkingDirectory=/home/ubuntu

#path to executable. 
#executable is a bash script which calls jar file
ExecStart=/home/ubuntu/spring-start

SuccessExitStatus=143
TimeoutStopSec=10
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

我的脚本文件spring-start.sh

代码语言:javascript
复制
sudo java -jar "/home/ubuntu/FirstWebAppWithoutDB.jar"

我还通过chmod u+x spring-start.sh将执行权限授予了spring-start.sh

代码语言:javascript
复制
sudo systemctl daemon-reload

sudo systemctl enable springboot.service

sudo systemctl start springboot

sudo systemctl status springboot

不幸的是,该服务失败,并显示error Exec format error:

代码语言:javascript
复制
springboot.service: Failed to execute command: Exec format error
Jul 14 07:39:56 ip-172-31-40-71 systemd[10075]: springboot.service: Failed at step EXEC spawning /home/ubuntu/spring-start.sh: Exec format error
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-14 16:35:24

将shebang添加到脚本

代码语言:javascript
复制
#!/bin/bash
sudo java -jar "/home/ubuntu/FirstWebAppWithoutDB.jar"

和执行权限

代码语言:javascript
复制
chmod +x spring-start.sh
票数 39
EN

Stack Overflow用户

发布于 2021-02-17 06:54:34

您的spring-start.sh是由bash执行的,您需要在springboot.service文件中显示您的ExecStart,如下所示:ExecStart=/bin/bash /home/ubuntu/ExecStart-start.sh

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57025605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档