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/ 目录中)的配置。
- 
示例单元文件: [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
- 
检查 ExecStart 路径: 
 确保ExecStart中指定的可执行文件路径正确且存在。ls -l /usr/bin/my-custom-service
- 
检查文件权限: 
 确保可执行文件具有执行权限。chmod +x /usr/bin/my-custom-service
二、验证可执行文件的有效性
确保可执行文件能够独立运行。
- 
手动运行可执行文件: 
 尝试在终端中手动运行该文件,检查是否有错误输出。/usr/bin/my-custom-service
- 
调试输出: 
 如果执行失败,检查错误信息并修复相应问题。
三、检查日志
systemd 会将详细的错误信息记录到日志中,通过 journalctl 命令查看相关日志。
- 
查看服务日志: journalctl -u my-custom-service.service
- 
分析日志输出: 
 查找日志中的错误信息,通常会提供更详细的错误原因。
四、配置文件示例
以下是一个完整的示例,假设服务名为 my-custom-service。
- 
创建单元文件: sudo nano /etc/systemd/system/my-custom-service.service
- 
单元文件内容: [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
- 
重载 systemd 配置: sudo systemctl daemon-reload
- 
启动服务: sudo systemctl start my-custom-service
- 
检查服务状态: sudo systemctl status my-custom-service
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号