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

news/2025/2/9 5:55:06 标签: vim, 编辑器, linux

程序占用

如果你在关闭终端后重新运行 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. 使用 screen 或 tmux 工具

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

安装 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 &
使用 nohupnohup node server.js &
使用 screenscreen -S myserver
使用 pm2pm2 start server.js
使用 foreverforever start server.js

http://www.niftyadmin.cn/n/5845630.html

相关文章

在线SQL转JSON-GO在线工具集

此工具提供多数据库 SQL 自动转换为 JSON 格式的工具&#xff0c;支持 MySQL、PostgreSQL、Oracle 等主流数据库。此工具将 SQL 查询结果转换为结构化的 JSON 数据&#xff0c;方便 JSON 处理和数据交换&#xff0c;优化数据管理和集成过程&#xff0c;提升工作效率。 gotool

存储异常导致的Oracle重大生产故障

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验 Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯…

Docker 部署 GitLab

一、下载镜像 docker pull gitlab/gitlab-ce 二、运行容器 docker run -d --name gitlab-20080 \n -p 20443:443 -p 20080:80 -p 20022:22 \n -v /wwwroot/opt/docker/gitlab-20080/etc:/etc/gitlab \n -v /wwwroot/opt/docker/gitlab-20080/log:/var/log/gitlab \n -v /www…

uniapp mqttjs 小程序开发

在UniApp中集成MQTT.js开发微信小程序时&#xff0c;需注意平台差异、协议兼容性及消息处理等问题。以下是关键步骤与注意事项的综合指南&#xff1a; 一、环境配置与依赖安装 安装MQTT.js 推荐使用兼容性较好的版本&#xff1a;mqtt4.1.0&#xff08;H5和小程序兼容性最佳&…

Spring 6.2.2 @scope(“prototype“)原理

Spring Prototype 原理&#xff1f; 前置准备 创建一个MyService类 Scope("prototype") Service("myService") public class MyService {public String getMessage() {return "Hello, World!";} }创建一个main类&#xff0c;用于debug。 pr…

超越传统IDE:Cursor智能编码介绍

超越传统IDE&#xff1a;Cursor智能编码介绍 为什么选择Cursor常用快捷键常用设置汉化设置隐私设置模型选择添加大模型Rules for AI&#xff08;AI生成规则&#xff09;Python执行环境安装扩展切换python版本 添加Docs文档 使用技巧Chat模式与COMPOSER模式Chat 模式提交按钮COM…

攻防世界 文件上传

题目名称-文件包含 今天的题大概提一下解题思路就好了 这里要使用php://filter 在此基础上因为网页过滤了一些关键字 我们要进行爆破 UCS-4* UCS-4BE UCS-4LE* UCS-2 UCS-2BE UCS-2LE UTF-32* UTF-32BE* UTF-32LE* UTF-16* UTF-16BE* UTF-16LE* UTF-7 UTF7-IMAP UTF-8* ASCII…

node.js + html + Sealos容器云 搭建简易多人实时聊天室demo 带源码

node.js html Sealos容器云 搭建简易多人实时聊天室demo 带源码 前言功能介绍&#xff08;demo演示&#xff09;sealos官网配置node.js 编写服务端代码前端ui 调用接口整体项目目录部署到服务器 前言 hello哦盆友们&#xff0c;这次我们来十几行代码做一个超简单的多人聊天…