Ubuntu 18.04部署code-server服务启动失败(status=203/EXEC)求助
先执行提示的命令更新systemd配置:
运行systemctl daemon-reload,然后重启服务systemctl restart code-server,再查看状态systemctl status code-server,确认是否解决。验证服务配置文件的
ExecStart路径正确性:
打开你的code-server.service文件,找到ExecStart行,确认路径指向的是code-server的可执行文件(通常是/usr/lib/code-server/bin/code-server,而非/usr/lib/code-server目录)。
执行ls -l <ExecStart里的路径>,检查文件是否存在,且权限包含可执行位(即权限列有x,比如-rwxr-xr-x)。如果没有可执行权限,运行chmod +x <ExecStart里的路径>添加权限。检查服务运行用户的合法性:
查看service文件中的User和Group配置(比如是否为User=code-server),运行id <配置的用户名>确认用户存在。如果不存在,创建用户:useradd -r -m -U -d /var/lib/code-server -s /sbin/nologin code-server。
确认/var/lib/code-server目录的归属:运行ls -ld /var/lib/code-server,确保所有者是配置的用户组,否则执行chown -R <用户名>:<用户组> /var/lib/code-server。直接运行可执行文件排查依赖问题:
执行/<ExecStart里的完整路径> --version,如果执行失败,终端会输出具体错误(比如缺少某个系统库)。针对Ubuntu 18.04,可尝试安装常见依赖:apt install libstdc++6 libatomic1。查看详细日志定位问题:
运行journalctl -u code-server -xe,这里会输出服务启动时的完整错误信息,比如权限拒绝、文件缺失等,是排查这类问题的核心手段。测试AppArmor限制(Ubuntu默认启用):
临时关闭AppArmor:systemctl stop apparmor,然后重启code-server服务。如果服务能正常启动,说明是AppArmor规则限制了code-server的执行,后续可调整规则或保持关闭(根据安全需求)。
内容的提问来源于stack exchange,提问作者serdar

