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

在使用 systemd 管理服务时,遇到服务启动失败并报错 Main process exited, code=exited, status=203/EXEC,通常意味着在执行服务时发生了错误,可能是由于配置文件、权限或可执行文件路径问题引起的。以下是详细的排查和解决步骤。

一、检查单元文件的配置

首先检查 systemd 单元文件(通常位于 /etc/systemd/system//lib/systemd/system/ 目录中)的配置。

  1. 示例单元文件

    复制代码
    [Unit]
    Description=My Custom Service
    After=network.target
    
    [Service]
    Type=simple
    ExecStart=/usr/bin/my-custom-service
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
  2. 检查 ExecStart 路径

    确保 ExecStart 中指定的可执行文件路径正确且存在。

    复制代码
    ls -l /usr/bin/my-custom-service
  3. 检查文件权限

    确保可执行文件具有执行权限。

    复制代码
    chmod +x /usr/bin/my-custom-service
二、验证可执行文件的有效性

确保可执行文件能够独立运行。

  1. 手动运行可执行文件

    尝试在终端中手动运行该文件,检查是否有错误输出。

    复制代码
    /usr/bin/my-custom-service
  2. 调试输出

    如果执行失败,检查错误信息并修复相应问题。

三、检查日志

systemd 会将详细的错误信息记录到日志中,通过 journalctl 命令查看相关日志。

  1. 查看服务日志

    复制代码
    journalctl -u my-custom-service.service
  2. 分析日志输出

    查找日志中的错误信息,通常会提供更详细的错误原因。

四、配置文件示例

以下是一个完整的示例,假设服务名为 my-custom-service

  1. 创建单元文件

    复制代码
    sudo nano /etc/systemd/system/my-custom-service.service
  2. 单元文件内容

    复制代码
    [Unit]
    Description=My Custom Service
    After=network.target
    
    [Service]
    Type=simple
    ExecStart=/usr/bin/my-custom-service
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
  3. 重载 systemd 配置

    复制代码
    sudo systemctl daemon-reload
  4. 启动服务

    复制代码
    sudo systemctl start my-custom-service
  5. 检查服务状态

    复制代码
    sudo systemctl status my-custom-service
相关推荐
切糕师学AI5 分钟前
深入解析 Zsh 与 Oh-My-Zsh:打造高效现代化终端
linux·终端·zsh
切糕师学AI1 小时前
Ubuntu 下 Git 完全使用指南
linux·git·ubuntu
草履虫君1 小时前
VMware 虚拟机网络性能优化指南:从 11 秒到 4 秒的完整调优实践
服务器·网络·经验分享·性能优化
日取其半万世不竭1 小时前
LVM 逻辑卷管理:不停机扩容磁盘的正确方式
运维·服务器
优化Henry1 小时前
TDD-LTE站点Rilink=3链路故障处理案例---BBU侧C口“有发光、无收光”的排查与恢复
运维·网络·信息与通信·tdd
浪客灿心1 小时前
Linux网络传输层协议
linux·运维·网络
舟遥遥娓飘飘2 小时前
Nexus4CC 手机电脑同步claude code对话部署教程(基于linux系统)
linux·智能手机·电脑
V搜xhliang02462 小时前
OpenClaw科研全场景用法:从文献到实验室的完整自动化方案
运维·开发语言·人工智能·python·算法·microsoft·自动化
何妨呀~2 小时前
Firewalld防火墙端口配置
linux
切糕师学AI2 小时前
Vim 深度解析:从经典 vi 到现代编辑器之巅
linux·vim·文本编辑器