Linux

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > Linux > Linux systemd服务启动失败Main process exited,code=exited, status=203/EXEC

解决Linux systemd服务启动失败Main process exited,code=exited, status=203/EXEC问题

作者:WF文丰

文章分析了使用nohup启动服务在systemd中遇到的问题,并提供了解决方案,建议使用systemd管理服务,创建.service文件,避免使用nohup,同时检查日志、权限和环境变量,确保服务正常启动

问题描述

命令:

java -Xms1024m -Xmx1024m -jar /usr/local/java/bin/mashang/app.jar --server.port=8532 ----spring.profiles.active=test

是可以直接启动的,但是注册service后,使用systemd无法启动

解决思路及方法

vim /etc/systemd/system/mashang.service

查看service文件如下

[Unit]
Description=Mashang Service
After=network.target nginx.service
Requires=nginx.service

[Service]
Type=simple
User=root
Group=root
ExecStart=java -Xms1024m -Xmx1024m -jar /usr/local/java/bin/mashang/app.jar --server.port=8532 ----spring.profiles.active=test
Restart=on-failure

[Install]
WantedBy=multi-user.target

启动日志:

Jul 20 21:13:28 localhost systemd[1]: mashang.service: Main process exited, code=exited, status=203/EXEC
Jul 20 21:13:28 localhost systemd[1]: mashang.service: Failed with result 'exit-code'.
Jul 20 21:13:28 localhost systemd[1]: mashang.service: Scheduled restart job, restart counter is at 5.
Jul 20 21:13:28 localhost systemd[1]: Stopped Mashang Service.
Jul 20 21:13:28 localhost systemd[1]: mashang.service: Start request repeated too quickly.
Jul 20 21:13:28 localhost systemd[1]: mashang.service: Failed with result 'exit-code'.
Jul 20 21:13:28 localhost systemd[1]: Failed to start Mashang Service.

排除方向一:nohup

在Linux系统中,使用nohup命令主要是为了在终端关闭或用户登出后,使命令或脚本在后台继续运行,并且其输出通常会被重定向到一个名为nohup.out的文件中(除非用户指定了其他输出文件)。但是,如果你尝试在开机启动脚本(如/etc/init.d/中的脚本,或使用systemd的.service文件)中使用nohup来启动某个服务或脚本,可能会遇到一些问题。

以下是一些原因和解决方案:

排除方向二:使用绝对路径而不是相对路径

java改绝对路径后正常

vim /etc/systemd/system/mashang.service

查看service文件如下

```bash
vim /etc/systemd/system/mashang.service

查看service文件如下

[Unit]
Description=Mashang Service
After=network.target nginx.service
Requires=nginx.service

[Service]
Type=simple
User=root
Group=root
ExecStart=java -Xms1024m -Xmx1024m -jar /usr/local/java/bin/mashang/app.jar --server.port=8532 ----spring.profiles.active=test
Restart=on-failure

[Install]
WantedBy=multi-user.target

systemctl status mashang

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文