信息: 我指的是 this我在 super 用户上提出的问题,但无法得到答案,我认为这是一个提问的好地方,因为问题可能与代码相关。
我目前正在我的 RaspberryPi 上运行一个简单的 Node.JS 服务器,其中包含express.js,并安装了 Debian。一切工作正常,但每天早上我醒来都会发现我的服务器不再运行(我使用命令 node main.js
启动的服务器进程)。
我的第一个猜测是,Pi 有某种 sleep 模式,在没有流量/等的几个小时后进入该模式,并关闭服务器,但我还运行了 dydns-client,它仍然是每天早上起床(我还被告知,RaspberryPi 没有 sleep 模式)。
我编写了一个简单的脚本来检查进程是否正在运行并将其写入日志文件,但今天早上我不得不注意到,该脚本也没有运行(仅运行了大约两个小时,它记录了服务器状态每 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 收到了有效的答案。 -堆栈交换。
最佳答案
我的猜测是 Raspberry Pi 在午夜或类似的情况下重新启动。要解决此问题,可以为您的服务器进程 rc.local 文件添加一个条目。您可以通过编辑 /etc/rc.local
关于javascript - HTTP 服务器在一段时间后停止 (Node.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37144922/