nginx重载成功 状态正常 systemctl status nginx 查询 Active: inactive (dead)

问题遇到的现象和发生背景
[root@admin-manager sbin]# ./nginx -s reload
[root@admin-manager sbin]# ps -ef|grep nginx
root     18522     1  0 15:44 ?        00:00:00 nginx: master process ./nginx
nobody   18528 18522  0 15:46 ?        00:00:00 nginx: worker process
root     18530 13491  0 15:47 pts/2    00:00:00 grep --color=auto nginx
[root@admin-manager sbin]# ps -ef|grep nginx
root     18522     1  0 15:44 ?        00:00:00 nginx: master process ./nginx
nobody   18528 18522  0 15:46 ?        00:00:00 nginx: worker process
root     18532 13491  0 15:47 pts/2    00:00:00 grep --color=auto nginx
[root@admin-manager sbin]# systemctl status nginx
鈼?nginx.service - SYSV: Nginx is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server
   Loaded: loaded (/etc/rc.d/init.d/nginx; bad; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:systemd-sysv-generator(8)
[root@admin-manager sbin]# ^C
[root@admin-manager sbin]# 

注:网站地址能正常访问。
请问这是什么原因,如何解决?

楼上说的都是解决办法,但我想说的是,

这都不是核心;


你的nginx重载成功,但显示确实是失败,明显就是2个不同的nginx应用,
可以说,你安装了2个nginx,
直接重载的和你systemctl查看的并不是相同的应用;


不信,你可以 直接查找下nginx有几个,即可解决你的问题;

find / -iname nginx

直接用以上命令查找下有几个nginx即可明确。

首先明确配置文件是否有异常,可初步使用 nginx -t 进行检查,
然后定位日志中具体报错信息来定位问题,去看看日志提示啥。


还有,你使用了systemd 来控制服务,就别单独使用 nginx -s reload,你使用 systemctl reload nginx来控制比较好
如果你是源码编译安装,就需要你编写好 systemd,要写对,否则就会出现的dead状态,其实进程还在正常运行。

你是编译安装的么,感觉是服务启动文件的问题,你看下错误日志怎么说的

1、是否通过yum方式安装的nginx?
2、nginx估计不是使用systemctl start nginx启动的。
nginx直接可以使用nginx命令就启动,默认是使用/etc/nginx/nginx.conf配置文件
3、你可以pgrep -f "master process nginx"获取进程,然后查看下进程。

img

是通过下载安装包解压安装的

nginx删了重装,把/usr/lib/systemd/system目录下的nginx.service也删了重装,用systemctl start nginx启动或者nginx启动

建议先查一下网站对应的端口,所属的服务进程是否为该nginx

通过排查端口和现有服务 看看服务运行路径和nginx版本,然后再把另一个版本的nginx卸载掉

你用服务方式启动,这样才能看到状态

你的问题是 System V 和 Systemd 的区别。
./nginx -s reload 使用的是 System V 采用 init 脚本,是老方法。
systemctl status nginx 是 Systemd 服务是用 C 写成的。
这是不同的方式。

loaded (/etc/rc.d/init.d/nginx; bad; vendor preset: disabled) 你需要检查下你的/etc/rc.d/init.d/nginx配置,是不是少配置了什么,我之前是没有配置JDK导致出现这类问题

nginx删了重装,把/usr/lib/systemd/system目录下的nginx.service也删了重装,用systemctl start nginx启动或者nginx启动

nginx删了重装,把/usr/lib/systemd/system目录下的nginx.service也删了重装,用systemctl start nginx启动或者nginx启动