nginx已启动但在ubuntu上找不到服务

时间:2017-03-19 17:17:14

标签: apache ubuntu nginx

我尝试在ubuntu 16.04上重启apache服务,但我不能,因为端口' 80'由nginx听取。 但是当我试图阻止nginx时,找不到该服务。

netstat -ltnp | grep ':80'
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      6069/nginx


    systemctl status nginx
● nginx.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)

service nginx stop
Failed to stop nginx.service: Unit nginx.service not loaded.

那么我怎样才能停止nginx以重启apache?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

你的机器上的nginx以其他方式启动,然后是systemd标准的nginx服务。

alex@openresty:~$ ps aux | grep nginx
root      2668  0.0  0.0  41040   928 ?        Ss   12:33   0:00 nginx: master process /usr/local/openresty/bin/openresty -p /usr/local/openresty/nginx/
nobody    2669  0.0  0.0  41040  3316 ?        S    12:33   0:00 nginx: worker process

将显示使用命令行参数运行nginx的完整路径。以下是我的PC示例(我使用Openresty捆绑,因此您的路径可能会有所不同)。

现在看一下nginx主进程命令行参数。如果存在-p,则应使用完全相同的方法来停止nginx。对于我的情况,它应该是:

/usr/local/openresty/bin/openresty -p /usr/local/openresty/nginx/ -s stop

如果错过-p,您可能只是

/usr/local/openresty/bin/openresty -s stop

它会停止nginx,但有可能在你的PC上nginx被配置为非标准服务运行,例如手写的systemd单元。 所以在每次重启时你都会再次运行nginx。