首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何自动重启节点app?

如何自动重启节点app?
EN

Stack Overflow用户
提问于 2016-04-05 13:05:24
回答 6查看 7.6K关注 0票数 3

我正在运行一个节点强循环应用程序,如果它崩溃了,我需要它自动重启。自动重启节点应用程序的最佳方式是什么?另外,当这些崩溃发生时,有没有通知呢?

EN

回答 6

Stack Overflow用户

发布于 2016-04-05 13:18:32

您可以使用进程管理器,如Strongloop进程管理器(http://strong-pm.io/)、PM2 (http://pm2.keymetrics.io/)和Forever (https://github.com/foreverjs/forever)。还要检查这三个参数(http://strong-pm.io/compare/)的比较。您还可以在服务器重启时检查pm2-monitor (https://www.npmjs.com/package/pm2-monitor)中的通知。

票数 5
EN

Stack Overflow用户

发布于 2016-04-05 13:41:18

大多数Linux系统最近都切换到使用systemd,这使得这个过程变得更加简单和高效,这意味着我们不再需要永远。

你所需要的是:

用于通过systemctl enable nodeserver.service.

  • Start /etc/systemd/system/nodeserver.service.

  • Enable systemctl start nodeserver.service.

创建服务文件的

您总是可以通过运行以下命令来检查它的可用性:systemctl status nodeserver.service

如果您对服务文件进行了任何更改,则需要在重新加载服务systemctl restart nodeserver.service之前执行systemctl daemon-reload

.service文件示例:

代码语言:javascript
复制
[Unit]
Description=Node.js Example Server
#Requires=After=mysql.service       # Requires the mysql service to run first

[Service]
ExecStart=/usr/local/bin/node /opt/nodeserver/server.js
Restart=always
RestartSec=10                       # Restart service after 10 seconds if node service crashes
StandardOutput=syslog               # Output to syslog
StandardError=syslog                # Output to syslog
SyslogIdentifier=nodejs-example
#User=<alternate user>
#Group=<alternate group>
Environment=NODE_ENV=production PORT=1337

[Install]
WantedBy=multi-user.target

顺便说一句,StrongLoop有一篇关于最佳实践的官方文章,其中提到了systemdRead more.

你可能还想看看这个模块,它是由strongloop guys为nodejs和strongloop构建的:https://github.com/strongloop/strong-service-systemd

票数 5
EN

Stack Overflow用户

发布于 2017-03-15 18:33:24

PM2和forever是管理节点进程的好方法。PM2提供了一个友好的图形界面,让你可以很容易地获得CPU/内存/日志。

在这里,我提供另一个有趣的想法: Docker。

您可以使用docker hub中的docker镜像构建运行时环境

并运行它:

docker运行-it节点图像节点您的script.js

您可以使用重新启动参数来管理流程的生命周期。

Docker支持以下重启策略:

  1. no不会在容器退出时自动重启容器。仅当容器以非零退出状态退出时,这才是default
  2. failure重启。可选)限制重启重试的次数Docker守护进程attempts.
  3. always始终重启容器,无论退出状态如何。当您指定always时,Docker守护进程将尝试重新启动容器,indefinitely.The容器也将始终在守护进程启动时启动,而不考虑容器的当前状态。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36417528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档