解决nginx提示:(code=exited, status=203/EXEC)的错误

项目场景:

在centos7上启动nginx1.19.安装过程省略...

问题描述:

编译安装一切顺利,使用systemctl start nginx时提示如下内容:

[root@localhost stream_conf]# systemctl status nginx
● nginx.service - nginx - web server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since 二 2021-12-14 14:58:49 CST; 36s ago
  Process: 22970 ExecStartPre=/opt/server/nginx/sbin/nginx -t -c /opt/server/nginx/conf/nginx.conf (code=exited, status=203/EXEC)

1214 14:58:49 localhost.localdomain systemd[1]: Starting nginx - web server...
1214 14:58:49 localhost.localdomain systemd[22970]: Failed at step EXEC spawning /opt/server/nginx/sbin/nginx: No such file or directory
1214 14:58:49 localhost.localdomain systemd[1]: nginx.service: control process exited, code=exited status=203
1214 14:58:49 localhost.localdomain systemd[1]: Failed to start nginx - web server.
1214 14:58:49 localhost.localdomain systemd[1]: Unit nginx.service entered failed state.
1214 14:58:49 localhost.localdomain systemd[1]: nginx.service failed.
Hint: Some lines were ellipsized, use -l to show in full.

重点报错内容:(code=exited, status=203/EXEC)


原因分析:

设置systemctl启动方式时出现配置文件(nginx.conf)的有效路径错误。


解决方案:

配置方法如下:

--先备份
[rot@localhost stream_conf]# cp /usr/lib/systemd/system/nginx.service /usr/lib/systemd/system/nginx.service.bak
--修改参数
[root@localhost stream_conf]# vim /usr/lib/systemd/system/nginx.service
--以下为原文件
[Unit]
Description=nginx - web server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/opt/server/nginx/conf/nginx.pid
ExecStartPre=/opt/server/nginx/sbin/nginx -t -c /opt/server/nginx/conf/nginx.conf
ExecStart=/opt/server/nginx/sbin/nginx -c /opt/server/nginx/conf/nginx.conf
ExecReload=/opt/server/nginx/sbin/nginx -s reload
ExecStop=/opt/server/nginx/sbin/nginx -s stop
ExecQuit=/opt/server/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

--修改为
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target

--然后重启systemctl
[rot@localhost stream_conf]# systemctl daemon-reload

---尝试启动nginx
[root@localhost stream_conf]# systemctl start nginx
[root@localhost stream_conf]# systemctl status nginx
### Docker服务启动失败问题分析 当遇到 `docker.service` 启动失败的情况时,可以通过以下方法进行诊断和修复: #### 1. 检查日志中的错误信息 通过命令 `systemctl status docker.service` 和 `journalctl -xe` 可以查看详细的错误日志。这些日志通常能够提供关于为什么 Docker 服务未能正常启动的关键线索[^5]。 #### 2. 验证 `/etc/docker/daemon.json` 文件的正确性 如果该文件存在语法错误或者配置冲突,则可能导致 Docker 服务无法启动。可以尝试删除此文件并重新创建一个简单的版本来测试是否能解决问题。例如: ```json { "registry-mirrors": [ "https://registry.docker-cn.com", "https://vj4iipoo.mirror.aliyuncs.com" ], "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" } } ``` 上述配置展示了如何设置国内镜像加速以及指定 cgroup driver 的方式[^4]。 #### 3. 确认依赖关系是否存在断裂 某些情况下,Docker 的启动可能因为其依赖的服务未准备好而失败。比如网络接口初始化延迟等问题可能会引发类似的错误消息:“A dependency job for docker.service failed.” 这种情况建议检查系统的整体健康状态,并确保所有必要的前置条件都已满足。 #### 4. 使用调试模式运行 Docker 守护程序 手动以更高的日志级别启动 Docker 守护进程可以帮助进一步定位具体原因: ```bash sudo dockerd --debug ``` #### 5. 如果是由于磁盘空间不足引起的问题 清理不必要的镜像、容器和其他数据也可能有助于恢复正常运作。利用下面这条指令找出占用大量存储资源的对象: ```bash docker system df ``` 最后一步就是依据实际发现的具体状况采取相应的补救措施。 ```python import subprocess def check_docker_status(): result = subprocess.run(['systemctl', 'status', 'docker.service'], capture_output=True, text=True) if "active (running)" not in result.stdout: print("Docker service is NOT running.") error_details = subprocess.check_output(['journalctl', '-xe']).decode('utf-8') return error_details else: print("Docker service is running.") error_log = check_docker_status() if error_log: print(error_log[:50]) # Print first part of the log as an example. ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值