javascript - HTTP 服务器在一段时间后停止 (Node.js)

标签 javascript node.js express debian httpserver

信息: 我指的是 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

将命令添加到 rc.local 文件中

关于javascript - HTTP 服务器在一段时间后停止 (Node.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37144922/

相关文章:

ios - 找不到 Node.js 设备

node.js - 我打算如何在 swaggerize-express 中使用处理程序和数据提供程序?

javascript - 如何将js变量与html表单链接并发送到PHP文件

javascript - 取消之前的异步 .load() 请求

javascript - Function.toString() 不尊重闭包范围

css - 将 .css 文件添加到 ejs

node.js - User.findAll 不是一个函数

javascript - jQuery:如果通过则死亡

javascript - 如何调试 jquery AJAX 调用?

javascript - 从 cmd 调用时 Nodejs 找不到我的 Node 模块