У меня супер простой сервер тестового узла
# 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/');
У меня есть простой сценарий выскочки, /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
Одна проблема, которую я вижу в вашей работе Upstart, - это start on
строфа. Событие, с которого начинается ваша работа, - это started
мероприятие. Читая справочную страницу для upstart-events, можно обнаружить, что запущенное событие генерируется, когда любой Работа запущена Upstart. Это не то, что вам нужно. Вместо этого используйте событие, например runlevel [2345]
, чтобы ваше приложение запускалось на всех многопользовательских уровнях выполнения. Это должно прояснить вашу проблему.