Назад | Перейти на главную страницу

Почему выскочка не останавливает мой сервер узла?

У меня супер простой сервер тестового узла

# 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], чтобы ваше приложение запускалось на всех многопользовательских уровнях выполнения. Это должно прояснить вашу проблему.