所以我编写了一个基于本文脚本的看似基本的node.js服务器新贵脚本,它启动服务器并运行在预期的端口上。 当我试图杀死它时,问题就来了。
我已经尝试了一些命令,如stop socketserver和initctl stop socketserver (function相同)或kill ,他们都做了两件事:成功结束进程,然后在不同的PID下启动它。
我所要的只是当我告诉它时这个过程结束,但当它不是一个有效的退出代码时重新生成; 我做错了什么?
description "node.js Socket Server" author "moberemk" start on started stop on shutdown # Automatically Respawn respawn respawn limit 10 5 script # Not sure why $HOME is needed, but we found that it is: export HOME="/root" export SOCKETSERVER_PORT=5000 exec sudo -u root /usr/bin/nodejs /vagrant/webroot/socketserver/app.js end script
(我也知道这个脚本可能会把这个消除,但是我使用Ubuntu 14.04在一个Vagrant框中运行这个脚本)
看起来好像你在指导新贵做一些非常的事情:
start on started
这一行不会触发语法错误。 但通常你会指定一个像这样的start节:
start on started some-other-service
假设您希望您的nodejs服务在启动时运行(并假设它需要Internet连接),也许您的意思是要执行如下操作:
start on (local-filesystems and net-device-up IFACE!=lo)
编辑
start on started
经过进一步调查,我确定这个节实际上导致新贵运行你的服务,每当另一个服务已经开始,这将解释为什么你的过程已被提供unkillable。
注释掉或删除重生线