node 程序占用处理方法与后台运行方法

程序占用

如果你在关闭终端后重新运行 node server.js,但提示端口 3000 被占用,说明之前的服务器进程仍然在后台运行。以下是解决方法:


1. 检查后台运行的 Node.js 进程

首先,检查是否有 Node.js 进程正在占用端口 3000

在 Linux/macOS 上

BASH

lsof -i :3000

输出示例:

TEXT

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME node 12345 user 20u IPv6 12345 0t0 TCP *:3000 (LISTEN)

5

2. 终止占用端口的进程

找到占用端口的进程 ID(PID),然后终止该进程。

BASH

kill -9 <PID>

例如,如果 PID 是 12345,运行:

复制代码

BASH

kill -9 12345


3. 使用 pm2

pm2 和其他依赖包要求 Node.js 版本至少为 12.0.0 或更高。如果版本过低需要升级

  1. 使用 n 模块升级 Node.js:

    BASH

sudo npm install -g

n sudo n stable

2.检查是否版本已经更新

node --version

3.如果没有显示更新,刷新当前shell的环境变量

hash -r

4.再次验证版本

node --version

启动之前查看当前端口是否占用,如果占用删除进程

复制代码
lsof -i :3000
kill -9 PID

如果你使用 pm2 启动了 Node.js 服务器,可以通过它们的命令重新启动服务器。

使用 pm2
  1. 查看所有运行中的进程:

    复制代码

    BASH

    pm2 list

  2. 停止并删除进程:

    复制代码

    BASH

    pm2 delete server

  3. 重新启动服务器:

    复制代码

    BASH

    pm2 start server.js


4. 检查服务器是否已启动

在终止占用端口的进程后,重新运行 node server.js,确保服务器成功启动。

命令

BASH

node server.js

检查方法:
  • 如果服务器成功启动,你应该会看到类似以下的输出:

    复制代码

    TEXT

    Server is running on http://localhost:3000

Node.js 服务器在后台运行:


1. 使用 & 符号在后台运行

你可以在命令末尾添加 & 符号,将 Node.js 服务器放到后台运行。

命令:
复制代码

BASH

node server.js &

说明:
  • 这样即使你关闭终端,服务器仍然会在后台运行。
  • 你可以通过 jobs 命令查看后台运行的任务。

2. 使用 nohup 命令

nohup 命令可以让进程在终端关闭后继续运行。

命令:
复制代码

BASH

nohup node server.js &

说明:
  • 输出会被重定向到 nohup.out 文件中。
  • 即使你关闭终端,服务器仍然会保持运行。

3. 使用 screentmux 工具

screentmux 是终端多路复用工具,可以让你在后台运行长时间的任务。

安装 screen

BASH

sudo apt install screen

使用 screen
  1. 创建一个新的 screen 会话:

    复制代码

    BASH

    screen -S myserver

  2. screen 会话中启动 Node.js 服务器:

    复制代码

    BASH

    node server.js

  3. Ctrl + A 然后按 D,退出 screen 会话,但服务器仍然在后台运行。

  4. 重新连接到 screen 会话:

    复制代码

    BASH

    screen -r myserver


4. 使用 pm2 进程管理工具

pm2 是一个强大的 Node.js 进程管理工具,支持自动重启、日志管理等功能。

安装 pm2
复制代码

BASH

npm install -g pm2

使用 pm2 启动服务器:
复制代码

BASH

pm2 start server.js

其他常用命令:
  • 查看运行中的进程:

    复制代码

    BASH

    pm2 list

  • 停止服务器:

    复制代码

    BASH

    pm2 stop server

  • 删除服务器:

    复制代码

    BASH

    pm2 delete server


5. 使用 forever 工具

forever 是另一个简单的 Node.js 进程管理工具。

安装 forever
复制代码

BASH

npm install -g forever

使用 forever 启动服务器:
复制代码

BASH

forever start server.js

其他常用命令:
  • 查看运行中的进程:

    复制代码

    BASH

    forever list

  • 停止服务器:

    复制代码

    BASH

    forever stop server.js

以下是让 Node.js 服务器在后台运行的方法:

方法 命令示例
后台运行 (&) node server.js &
使用 nohup nohup node server.js &
使用 screen screen -S myserver
使用 pm2 pm2 start server.js
使用 forever forever start server.js
相关推荐
fengfuyao9852 小时前
使用ubuntu串口数据收和发不一致问题
linux·数据库·ubuntu
night boss2 小时前
内存泄漏排查
linux·内存泄漏
CURRY30_HJH3 小时前
将包含父子关系的扁平列表 List<Demo> 转换成树形结构的 List<DemoVO>,每个节点包含自己的子节点列表
linux·服务器·windows
GLAB-Mary3 小时前
红帽认证工程师(RHCE):掌握Linux自动化的关键
linux·运维·自动化·rhce
芯语新源4 小时前
在 Linux 系统中通过 yum 安装 Sublime Text
linux·bash·sublime text
xx155802862xx4 小时前
centos转移mysql的数据存储目录
linux·mysql·centos
独行soc4 小时前
2025年渗透测试面试题总结-字节跳动[实习]安全研发员(题目+回答)
linux·科技·安全·面试·职场和发展·渗透测试
chian-ocean4 小时前
永不休眠:Linux 守护进程的工作原理
linux·运维·服务器
嵌入式@秋刀鱼5 小时前
《 第三章-招式初成》 C++修炼生涯笔记(基础篇)程序流程结构
linux·开发语言·数据结构·c++·笔记·visual studio code
q567315235 小时前
Linux搭建爬虫ip与私有IP池教程
linux·爬虫·tcp/ip