信息:我指的是this问题我问超级用户,但无法得到答案,我认为这是一个很好的问题,因为问题可能与代码有关。HTTP服务器在一段时间后停止(Node.js)
我目前正在RaspberryPi上运行一个简单的Node.JS服务器,其上安装了Debian上的express.js。一切工作正常,但每天早上我醒来看到我的服务器不再运行(服务器进程我开始与命令node main.js
)。
我的第一个猜测是,Pi有一些睡眠模式,它在几个小时后没有流量/ etc并进入关闭服务器的状态后进入睡眠模式,但我也运行了dydns-client,它是每天早上还在起床(我也被告知,RaspberryPi没有带睡眠模式)。
我写了一个简单的脚本来检查进程是否正在运行并将其写入日志文件,但今天早上我不得不注意到,这个脚本运行得并不顺利(只有大约两个小时,它每15秒记录一次服务器状态,最后一个状态为运行)。
下面是脚本:
#!/bin/sh
MATCH="SOME_PROCESS_NAME"
while [ true ]
do
if [ "$(ps -ef | grep ${MATCH} | grep -v grep)" ]; then
echo "$(date): Process is running ..."
else
echo "$(date): Process has ended ..."
fi
sleep 15
done
有没有一种方法来跟踪的过程后,我明天早上开始它来检查,什么杀了我的过程中,或者为什么它结束(脚本显然没有工作)?
服务器本身看起来很简单,我不认为我错过了某种自动关机。这是我使用的代码。
var express = require('express');
var path = require('path');
var server = express();
server.use(express.static(path.join(__dirname, 'public')));
server.listen(1337);
console.log("Server listening (PORT: " + 1337 + ") ...");
任何想法该怎么做,以保持服务器运行/找出什么是停止原因?
更新:我收到了有关RaspberryPi -stackexchange的工作答案。
(飞写的),你是如何启动这些进程首先?听起来他们可能被[SIGHUP'](https://en.wikipedia.org/wiki/SIGHUP)杀死。 – robertklep
@robertklep是啊,我在[RaspberryPi.stackexchange]得到了类似的答案了(http://raspberrypi.stackexchange.com/questions/47139/http-server-stops-after-some-time?noredirect=1#comment70299_47139)我正在测试它:) – LastSecondsToLive