开发者
资源
文档评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

devkitai-server.service启动失败(Exit Code 203/EXEC)的解决方法

现象描述

在执行systemctl status devkitai-server.service时,发现服务状态为failed,重启服务5次失败后放弃,部分报错信息:code=exited,status=203/EXEC。详细的报错截图如下。

可能原因

在标准的Linux安全策略中,“/home”目录下的文件通常被标记为user_home_t上下文,而systemd启动的服务进程通常没有权限直接执行user_home_t上下文的可执行文件。由于SELinux处于Enforcing(强制)模式,内核拒绝了执行请求,导致systemd收到203/EXEC错误。

处理步骤

临时验证,快速定位问题是否为SELinux策略导致。

  1. 临时关闭SELinux强制模式。
    sudo setenforce 0
  2. 重启服务。
    sudo systemctl restart devkitai-server
  3. 检查状态。
    sudo systemctl status devkitai-server

    临时关闭SELinux强制模式后服务正常即确认问题是SELinux策略导致,其中临时关闭SELinux强制模式仅临时生效,重启后失效。此方法用于确认问题确实由SELinux引起,不建议作为生产环境的长期配置。

  4. 若需长期运行,可改用前台启动方式启动。

    前台启动方式使用详情请参见2.3章节安装步骤的前台启动进行操作,前台启动不受systemd的SELinux上下文限制。

  5. (可选)备选方案,将DevKit AI相关资源部署到SELinux策略允许执行的目录(如/opt或/usr/local)运行。
    1. 将DevKit AI相关资源移动到/opt目录。
      sudo mv /home/DevKit-AI-x.x.x-Linux-Kunpeng /opt/DevKit-AI-x.x.x-Linux-Kunpeng
    2. 修改systemd服务文件(/etc/systemd/system/devkitai-server.service)中的ExecStart路径。

      修改前:

      ExecStart=/home/DevKit-AI-xxx-Linux-Kunpeng/devkitai server

      修改后:

      ExecStart=/opt/DevKit-AI-xxx-Linux-Kunpeng/devkitai server
    3. 重载systemd配置并重启服务。
      sudo systemctl daemon-reload
      sudo systemctl restart devkitai-server
      sudo systemctl status devkitai-server

      每次修改systemd服务文件的ExecStart后,必须执行systemctl daemon-reload才能使更改生效。