跳到主要内容
版本:3.0.0

服务器启动失败排查

应用启动失败是非常常见的现象,逻辑错误,编译错误,配置错误,环境问题,都有可能导致你的项目无法启动。

快速定位代码问题

大多数情况下,我们说的启动失败一般都是服务器环境启动失败,下面以 Linux 为例。

1、使用 ps aux | grep node 检查进程是否存在,进程数量是否正确

2、打开 项目的日志目录,查看 common-error.log 文件的内容,根据最新的堆栈来排查原因

3、启动的控制台日志,比如 pm2 logs 相关的信息

大多数问题都会在日志中发现,请尽可能养成登录机器查看日志的习惯,这是开发者必备的技能。

可能的环境问题

除了代码本身的问题之外,环境可能也会带来一些问题,这些问题查起来就比较困难,往往和系统,权限,环境变量,启动参数,网络环境,甚至内核本身有关系。

下面列举一些可能的情况。

1、文件不完整或不是最新

确保的你的项目在部署前执行过以下的流程

  • 1、使用 npm run dev 或者类似命令本地启动并运行成功
  • 2、使用 npm run build 已经将 ts 文件编译为 js 文件,在根目录生成出 dist 目录
  • 3、使用 npm run start 在本地使用 js 文件执行成功

检查服务器上的文件,目录结构是否完整,比如:

  • 1、node_modules 目录是否存在
  • 2、dist 目录以及其中的 js 文件是否存在,或者为最新

2、启动用户的权限问题

我们一般会使用一个普通账户来执行,比如 admin 账户,而不是使用 sudo 去部署。

  • 1、检查用户是否用创建目录,启动 node 的权限
  • 2、检查项目的服务端日志目录是否有写入的权限

3、启动端口冲突

如果你启动了多个 Node.js 项目,如果使用了相同的端口,那么就会抛出端口重复使用的错误。