返回

Node.js 应用程序在 Linux 上永不停息:终极指南

Linux

## 让 Node.js 应用程序在 Linux 上永不停止运行:一劳永逸的解决方案

作为一个经验丰富的程序员,你经常会遇到需要让 Node.js 应用程序在后台持续运行的情况,即使终端已断开连接也是如此。本文将深入探讨各种方法,让你能够让你的应用程序在 Linux 服务器上永不停止运行,并提供全面的故障排除技巧。

## 后台进程:使用 "&" 和 "nohup"

### 使用 "&"

最简单的方法是使用 & 符号将应用程序移至后台。此方法简单易行,只需将以下命令附加到你的 Node.js 脚本即可:

$ node server.js &

这将启动应用程序并将其移至后台,同时允许你继续在终端中执行其他命令。

### 使用 "nohup"

另一个更强大的方法是使用 nohup 命令。nohup 允许你运行命令,即使终端已断开连接或用户已注销,该命令仍将继续运行。要使用 nohup,请使用以下命令:

$ nohup node server.js &

这将以后台模式启动应用程序并将其输出重定向到 nohup.out 文件中。

## 守护进程:使用 "forever"

如果你希望你的应用程序像守护进程一样运行,即在后台运行且不受终端影响,那么 forever 模块是一个不错的选择。要使用 forever,请按照以下步骤操作:

1. 安装 "forever"

$ npm install -g forever

2. 启动应用程序

$ forever start server.js

这将启动应用程序并将其作为守护进程运行。你可以使用以下命令停止应用程序:

$ forever stop server.js

## 在 Putty 中保持会话活动

如果你使用 Putty SSH 客户端连接到 Linux 服务器,那么你需要确保会话保持活动状态,这样 Node.js 应用程序才能继续运行。你可以通过以下方法之一来实现:

### 使用 Mosh 客户端

Mosh 是一个 SSH 替代品,它允许你即使在网络连接中断的情况下也能保持会话活动。

### 使用 tmux 或 screen

tmux 和 screen 是终端多路复用器,允许你创建多个虚拟终端会话。即使你断开连接,它们也会继续运行。

## 其他提示

### 使用进程管理器

pm2 或 systemd 等进程管理器可以管理进程并确保它们在崩溃后重新启动。

### 使用日志记录

配置你的应用程序以将错误和日志消息记录到文件中,以便你可以在出现问题时对它们进行故障排除。

### 监控应用程序

使用诸如 Uptime Robot 或 Pingdom 之类的服务监控你的应用程序的正常运行时间。

## 结论

通过遵循本文概述的步骤,你可以确保你的 Node.js 应用程序在 Linux 上始终保持运行,即使终端已断开连接也是如此。牢记这些方法并应用它们到你的项目中,你将能够构建可靠且健壮的应用程序,这些应用程序即使在最恶劣的情况下也能运行。

## 常见问题解答

### 1. 为什么我的应用程序在使用 "&" 时仍然会停止运行?

检查应用程序是否有错误或异常,这些错误或异常可能导致应用程序意外终止。

### 2. forever 模块如何确保我的应用程序永不停止运行?

forever 会监控你的应用程序,并在它崩溃时自动重新启动它。

### 3. 如何在使用 tmux 或 screen 时查看我的应用程序的输出?

在 tmux 或 screen 中,你可以使用 tail -f nohup.out 命令查看应用程序的输出。

### 4. 使用 nohup 有什么缺点?

nohup 会将应用程序的输出重定向到 nohup.out 文件,因此你可能无法在终端中实时查看输出。

### 5. 如何在使用 Mosh 时管理多个 SSH 会话?

Mosh 提供了一个多路复用器,允许你管理多个 SSH 会话。你可以在 Mosh 文档中找到更多信息。