如何在Linux上运行Node.js,Node.js后台运行怎么设置?

Linux 环境下运行 Node.js 的指南

在 Linux 环境中运行 Node.js 应用,根据场景(开发、测试、生产)的不同,通常有以下几种主流方式。

基础运行方式 (适用于开发调试)

这是最直接的方式,直接在终端执行命令。

5分钟linux快速部署node.js
加载中
5分钟linux快速部署node.js
  • 命令: node app.js
  • 特点:
    • 简单快速,适合本地开发和临时测试。
    • 缺点: 一旦关闭当前的终端窗口或断开 SSH 连接,程序将会立即停止运行

使用 nohup 实现后台运行 (适用于简单任务)

如果你需要程序在后台运行,且不想安装额外的工具,可以使用 nohup 命令。

  • 命令: nohup node app.js > output.log 2>&1 &
  • 参数详解:
    • nohup: 让程序忽略挂断信号(SIGHUP),即使退出登录程序也不会停止。
    • > output.log: 将标准输出重定向到指定的日志文件。
    • 如何在Linux上运行Node.js,Node.js后台运行怎么设置?

    • 2>&1: 将错误输出也重定向到标准输出中,确保所有日志都记录在同一个文件。
    • &: 将任务放入后台执行。
  • 特点:
    • 无需安装额外软件。
    • 缺点: 缺乏进程监控、自动重启和负载均衡功能。

使用 PM2 进行进程管理 (生产环境首选)

PM2 是 Node.js 社区最流行的进程管理器,是生产环境的标准配置。

  • 安装: npm install pm2 -g
  • 核心操作:
    • 启动应用: pm2 start app.js --name "my-app"
    • 查看运行状态: pm2 list
    • 停止应用: pm2 stop my-app
    • 重启应用: pm2 restart my-app
    • 查看实时日志: pm2 logs
    • 查看资源占用

      如何在Linux上运行Node.js,Node.js后台运行怎么设置?

      : pm2 monit

    • 设置开机自启: pm2 save 配合 pm2 startup
  • 特点:
    • 自动重启: 如果程序崩溃,PM2 会立即自动拉起进程。
    • 集群模式: 通过 pm2 cluster 模式可以轻松利用多核 CPU 提升性能。
    • 日志管理: 内置完善的日志记录与管理功能。

使用 systemd 配置为系统服务 (高可用方案)

如果你希望 Node.js 应用像 Nginx 或 MySQL 一样作为 Linux 系统级服务运行,可以使用 systemd

  • 操作步骤:

    1. 创建服务配置文件: sudo nano /etc/systemd/system/my-node-app.service

    2. 写入以下配置模板:

      [Unit]
      Description=My Node.js Application
      After=network.target
      [Service]
      Type=simple
      User=your-username
      WorkingDirectory=/var/www/my-app
      ExecStart=/usr/bin/node app.js
      Restart=always
      [Install]
      WantedBy=multi-user.target

      如何在Linux上运行Node.js,Node.js后台运行怎么设置?

    3. 重新加载配置: sudo systemctl daemon-reload

    4. 启动服务: sudo systemctl start my-node-app

    5. 设置开机自启: sudo systemctl enable my-node-app

  • 特点:

    • 稳定性极高,深度集成于 Linux 系统。
    • 管理规范,可以使用 systemctl 进行统一的状态检查和管理。

总结与建议

  • 开发阶段: 直接使用 node app.js
  • 临时后台运行: 使用 nohup
  • 常规生产环境: 强烈建议使用 PM2,它在易用性和功能性之间取得了完美的平衡。
  • 核心基础设施/对稳定性要求极高的环境: 使用 systemd 进行管理。

首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/491137.html

(0)
Linux怎么定义多个变量,如何批量设置环境变量?
上一篇 2026年7月13日 11:28
三优云3周年庆低价清仓VPS值得买吗,香港CN2 VPS哪个好?
下一篇 2026年7月13日 11:31

相关推荐

  • linux echo 怎么输出当前时间?linux shell 获取时间戳

    在 Linux 中,echo 命令本身并不直接生成时间,但你可以结合 date 命令来输出当前时间,以下是几种常见的方法:使用 echo 和 date 组合这是最常用的方法,通过命令替换 将 date 的输出结果传递给 echo,# 输出当前完整时间echo "当前时间是: $(date)&quot……

    2026年7月10日
    9500
  • linux shell乱码怎么解决?linux终端中文显示乱码

    Linux Shell出现乱码的核心原因是终端编码、系统环境变量与文件实际编码不一致,最直接的解决方式是将LANG和LC_ALL环境变量统一设置为UTF-8,当你面对满屏的问号或方块时,不要惊慌,这通常不是系统崩溃,而是字符集在“翻译”过程中出了岔子,Linux系统本身并不强制规定某种编码,它只是忠实地存储字节……

    2026年7月7日
    2000
  • linux安装介质怎么制作?linux系统安装盘制作教程

    Linux安装介质的选择直接决定了系统部署的效率与稳定性,核心在于根据硬件架构(x86/ARM)和用途(服务器/桌面)匹配官方ISO镜像或U盘启动盘,在数字化基础设施日益复杂的今天,获取一个可靠的Linux安装介质不再是简单的“下载文件”,而是一场涉及架构兼容性、网络环境以及安全校验的系统工程,许多初学者往往因……

    2026年7月4日
    4910
  • Linux清空Cache怎么操作?Linux清理缓存命令

    在Linux系统中,执行echo 3 > /proc/sys/vm/drop_caches命令可立即清空页面缓存、目录项和索引节点,这是释放内存最快速且安全的标准操作,很多刚接触Linux运维的朋友,看到服务器内存占用率飙升至90%以上就会慌神,第一反应往往是“内存泄漏”或者“系统中毒”,这大概率是Lin……

    2026年7月8日
    200
  • Linux分区id怎么查看,Linux如何修改分区UUID?

    Linux 分区 ID 详解在 Linux 系统中,分区 ID(Partition ID) 或 分区类型码(Partition Type Code) 用于告知操作系统和引导加载程序(Bootloader)该分区上存储的是什么类型的数据(是 Linux 文件系统、交换分区还是 Windows NTFS 分区),根……

    2026年7月13日
    000
  • Linux如何获取微秒级时间,Linux高精度时间如何获取?

    Linux 获取微秒(Microseconds)的多种方法在 Linux 环境下,根据应用场景的不同(命令行操作、C/C++ 开发或 Python 脚本),有多种方式可以获取微秒级的时间精度,使用命令行 (Shell)如果你在终端中需要快速查看当前时间或在 Shell 脚本中使用,可以使用 date 命令,获取……

    2026年7月12日
    3000
  • linux如何检索文件?linux查找指定文件命令

    在Linux系统中检索文件,最核心的方法是结合使用find命令进行深层递归搜索,以及locate命令实现基于数据库的极速查找,二者互为补充,能覆盖绝大多数日常运维与开发场景,Linux文件系统层级复杂,面对成千上万个目录和文件,手动查找无异于大海捞针,掌握高效的检索工具,不仅是提升工作效率的关键,更是系统管理员……

    2026年7月10日
    18300
  • Kali Linux显卡怎么安装,如何安装Nvidia驱动?

    Kali Linux 显卡配置的核心在于通过正确安装显卡驱动(尤其是 NVIDIA CUDA 或 AMD ROCm)来启用 GPU 加速,使 Hashcat 等工具能够利用并行计算能力进行大规模密码破解,从而实现性能的量级提升,显卡在渗透测试中的核心价值在渗透测试与密码学研究领域,计算任务通常分为两种:通用计算……

    2026年7月13日
    9800
  • linux电梯算法是什么?linux电梯算法优缺点

    Linux电梯算法(LOOK)通过让磁盘读写头沿单一方向移动直到触及该方向最远请求,随后立即反转方向,从而显著减少磁头空跑距离,是平衡寻道时间与系统吞吐量的最优解,在操作系统底层,磁盘I/O是性能瓶颈的高发区,想象一下,如果电梯只上不下,或者随机乱跑,乘客体验会极差,Linux内核中的电梯算法正是为了解决这种……

    2026年7月4日
    7400
  • Linux扩展容量怎么操作?Linux磁盘扩容详细教程

    Linux扩展容量的核心在于通过LVM逻辑卷管理或文件系统在线扩容技术,在不丢失数据的前提下动态调整磁盘空间,其中LVM方案因其灵活性和非破坏性成为企业级首选,服务器磁盘空间不足是运维人员最常遇到的痛点之一,当监控报警显示根分区使用率超过80%时,传统的做法往往是停机挂载新硬盘、重建分区表,这不仅风险极高,还可……

    2026年7月12日
    3600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注