当前位置: 首页 > 面试题库 >

如何将Node.js应用程序作为其自己的进程运行?

越雨泽
2023-03-14
问题内容

部署Node.js的最佳方法是什么?

我有一个Dreamhost
VPS(这就是他们所说的VM),并且我已经能够安装Node.js并设置代理。只要我保持打开节点时启动的SSH连接就可以了。


问题答案:

2016年答案 :几乎每个Linux发行版都随附systemd,这意味着 永久,monit,PM2等都不再需要-您的OS已经可以处理这些任务

制作一个myapp.service文件(用您的应用名称替换“ myapp”):

[Unit]
Description=My app

[Service]
ExecStart=/var/www/myapp/app.js
Restart=always
User=nobody
# Note Debian/Ubuntu uses 'nogroup', RHEL/Fedora uses 'nobody'
Group=nobody
Environment=PATH=/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/var/www/myapp

[Install]
WantedBy=multi-user.target

请注意,如果您不熟悉Unix,则 /var/www/myapp/app.js应该#!/usr/bin/env node在第一行。

将您的服务文件复制到该/etc/systemd/system文件夹中。

通过告诉systemd有关新服务的信息systemctl daemon-reload

从开始systemctl start myapp

使它能够在启动时运行systemctl enable myapp

查看日志 journalctl -u myapp

这取自 我们如何在Linux版2018年上部署节点应用程序 ,该 版本
还包括用于生成AWS / DigitalOcean / Azure CloudConfig来构建Linux
/节点服务器(包括.service文件)的命令。



 类似资料:
  • 问题内容: 多年来,由于这篇文章引起了很多关注,因此我在文章的底部列出了每个平台的最佳解决方案。 原始帖子 : 我希望我的node.js服务器在后台运行,即:当我关闭终端时,我希望服务器继续运行。我已经用谷歌搜索并提出了本教程,但是它没有按预期工作。因此,我没有使用该守护程序脚本,而是以为我只使用了输出重定向(该`2>&1 file`部分),但这也不会退出-我在终端中出现空白行,就像它在等待输出/

  • 我正在尝试将Microsoft Team BOT作为Azure Web应用程序运行-可以在此处找到完整的代码 application.py: 在本地运行时,我可以将端口设置为8000,例如,将ngrok指向localhost,并在我的bot通道注册中指定url,一切正常。我一直在努力让我的代码在Azure中工作,但我就是无法做到这一点。我已将脚本配置为在端口8000上运行,并在应用程序设置中设置参

  • 问题内容: 如何获取Java进程的ID? 我知道有几种与平台相关的黑客,但是我希望有一个更通用的解决方案。 问题答案: 看起来是最好的(最近的)解决方案。它很短,并且可能在广泛使用的所有实现中起作用。 在上,它返回一个类似(12345是进程ID)的值。但是请注意,根据docs,不能保证该值: 返回代表正在运行的Java虚拟机的名称。返回的名称字符串可以是任意字符串,并且Java虚拟机实现可以选择在

  • 问题内容: 我目前正在为运行ubuntu的vms开发一个简单的部署脚本。所有这些机器都应该运行以jar形式提供的Java应用程序。 这是安装Java,将jar从本地计算机复制到远程计算机然后启动应用程序的脚本的相关部分: 通过java_installation.sh脚本的安装成功,scp命令也是如此。尝试通过ssh执行java_start_jar.sh中的命令时,会发生问题。java_start_

  • 我听说Dart使用自己的DartVM。因此,Flatter可以在开发应用程序时使用JIT(用于热重新加载)和AOT将后者构建为“原生”应用程序(.apk/.ipa)。 根据两个平台(Android/iOS)的文档: 提前(AOT)编译到本机ARM库中 但是,如果应用已经通过Dalvik/ART运行,那么Flatter如何在Android上使用自己的DartVM呢?虚拟机是否已内置到我们的系统中。a