为什么 upstart 不会停止我的节点服务器?

为什么 upstart 不会停止我的节点服务器?

我有一个非常简单的测试节点服务器

# server.js
var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(8080, '127.0.0.1');
console.log('Server running at http://127.0.0.1:8080/');

我有一个简单的 upstart 脚本,/etc/init/myapp.conf

description "myapp"
author "me"

start on started
stop on shutdown

exec /usr/bin/node /path/to/server.js

开始工作很好

sudo start myapp
myapp start/running, process 2518

但停止只会重启应用程序

sudo stop myapp
myapp start/running, process 2527

我没得到什么?

PS:我使用的是 ubuntu 14.04

答案1

我发现您的 Upstart 作业的一个问题是start on节。您的作业启动的事件是事件started。通过阅读 upstart-events 的手册页,可以发现在以下情况下会发出启动事件:任何作业由 Upstart 启动。这不是您想要的。相反,请使用诸如 之类的事件runlevel [2345],以便您的应用程序在所有多用户运行级别上启动。这应该可以解决您的问题。

相关内容