如何停止 Upstart 作业(服务)

如何停止 Upstart 作业(服务)

我以为这很容易但似乎并非如此。

这是我的系统信息:

# nginx -v
nginx version: nginx/1.8.0

# uname -a
Linux ip-10-0-0-247 3.2.0-69-virtual #103-Ubuntu SMP Tue Sep 2 05:21:29 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.5 LTS
Release:        12.04
Codename:       precise

以下是我停止 NginX 的各种尝试:

# netstat -punta | grep nginx
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      1743/nginx -g daemo

# service nginx stop
nginx start/running, process 1775
# netstat -punta | grep nginx
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      1775/nginx -g daemo

# nginx -s stop
# netstat -punta | grep nginx
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      1783/nginx -g daemo

# nginx -s quit
# netstat -punta | grep nginx
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      1791/nginx -g daemo

# initctl stop nginx
nginx start/running, process 1830
# netstat -punta | grep nginx
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      1830/nginx -g daemo

如上所示,每次我尝试停止 NginX 服务时,它都会以新的 PID 启动。寻求帮助以优雅地停止 NginX 服务。

答案1

尝试这个:

sudo kill $(pgrep nginx)

如果不起作用请尝试

sudo pkill nginx

如果不起作用请尝试搜索服务的PID:

ps aux | grep nginx

然后通过PID杀死:

sudo kill -9 PID

答案2

根据这个答案nginx.conf 文件和控制所有“服务”操作的 init 脚本之间存在不一致。

该行pid /tmp/nginx.pid;应该出现在您的/etc/nginx/nginx.conf文件中。该行应该复制到脚本中所有/etc/init.d/nginx引用 pid 的操作中。然后 top/reload/restart 操作应该全部起作用。

相关内容