在 Amazon EC2 上运行的全新 Ubuntu 12.04 实例
让 Nginx 与 Passenger 一起运行
添加了 upstart 脚本
description "NGiNX starter"
start on (local-filesystems and runlevel [2345])
stop on runlevel [016]
respawn
exec /etc/nginx/sbin/nginx
问题是我有多个 nginx 处理正在运行(超出工作线程)
$ ps aux | grep nginx
root 720 0.0 0.2 39624 1228 ? Ss 03:23 0:00 nginx: master process /etc/nginx/sbin/nginx
www-data 722 0.0 0.3 40136 1884 ? S 03:23 0:00 nginx: worker process
www-data 723 0.0 0.3 40136 1884 ? S 03:23 0:00 nginx: worker process
www-data 724 0.0 0.3 40136 2388 ? S 03:23 0:00 nginx: worker process
www-data 725 0.0 0.3 40136 1884 ? S 03:23 0:00 nginx: worker process
www-data 726 0.0 0.3 40136 1884 ? S 03:23 0:00 nginx: worker process
root 2218 0.0 0.6 39620 3688 ? Ss 03:45 0:00 /etc/nginx/sbin/nginx
我的理解是,进程 720 已正确启动,进程 722、723、724、725、726 代表在 nginx.conf 中配置的工作线程
我不明白进程 2218 在做什么?当我尝试
sudo kill 2218
我明白了
kill: No such process
当我再次使用 ps aux | grep nginx 检查时,恶意进程将在新的 PID 下运行
我认为 upstart 脚本出了问题,因为如果我将其移出 /etc/init 重新启动实例,然后运行相同的 ps aux | grep nginx 则没有任何运行
如果我手动启动 nginx,则不会出现恶意线程
我在另一台服务器上使用了同样的脚本一年多了,没有任何问题,知道我做错了什么吗?