检查我的进程是如何被终止的

检查我的进程是如何被终止的

我目前正在运行一个简单的 Node.JS 服务器express.js在安装了 Debian 的 RaspberryPi 上。一切运行正常,但每天早上我醒来都会发现我的服务器不再运行(我启动的服务器进程node main.js)。

我的第一个猜测是,Pi 有某种睡眠模式,它会在几个小时没有流量/等的情况下进入该模式,并关闭服务器,但我还运行了一个 dydns-client,它每天早上仍然处于运行状态。

有没有办法追踪我开始检查明天早上的进程后,被杀我的进程或者它为什么结束?

服务器本身看起来很简单,我不认为有什么自动关机我错过了。这是我使用的代码。

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 + ") ...");

知道该怎么做才能保持服务器运行/找出停止的原因吗?

答案1

您可以使用一些流程管理工具,例如pm2或者永远

如果您使用的是 pm2,则可以执行pm2 start main.js。它将监视进程,并在进程被终止时重新启动该进程。您可以在 ~/.pm2 中的 pm2 日志中找到错误原因

您可以运行pm2 startup来生成允许 pm2 在启动时运行的 init 脚本。

pm2 save保存当前进程列表,以便它们可以在系统重启时运行。

相关内容