温馨提示×

Node.js应用如何在Ubuntu上自动重启

小樊
50
2025-09-08 22:48:22
栏目: 编程语言

在Ubuntu上自动重启Node.js应用,可以使用以下几种方法:

  1. 使用PM2(推荐)

PM2是一个功能强大的Node.js进程管理器,可以帮助您管理和守护Node.js应用程序。要使用PM2,请按照以下步骤操作:

a. 首先,确保您已经安装了Node.js和npm。如果没有,请访问Node.js官方网站(https://nodejs.org/)下载并安装。

b. 使用npm全局安装PM2:

sudo npm install pm2 -g 

c. 将您的Node.js应用程序启动脚本添加到PM2:

pm2 start app.js --name my-app 

这里,app.js是您的Node.js应用程序的入口文件,my-app是应用程序的名称。

d. 设置PM2开机自启动:

pm2 startup 

按照提示操作,生成开机自启动配置。

e. 保存当前进程列表,以便在系统重启后恢复:

pm2 save 

现在,您的Node.js应用程序将在Ubuntu启动时自动运行,并在发生故障时自动重启。

  1. 使用systemd

如果您更喜欢使用systemd来管理您的Node.js应用程序,可以按照以下步骤操作:

a. 创建一个新的systemd服务文件:

sudo nano /etc/systemd/system/my-app.service 

这里,my-app是您的Node.js应用程序的名称。

b. 将以下内容粘贴到服务文件中,根据需要进行修改:

[Unit] Description=My Node.js App After=network.target [Service] User=<your-user> WorkingDirectory=/path/to/your/app ExecStart=/usr/bin/node /path/to/your/app/app.js Restart=always [Install] WantedBy=multi-user.target 

<your-user>替换为您的用户名,将/path/to/your/app替换为您的应用程序目录。

c. 保存并关闭文件。

d. 重新加载systemd配置:

sudo systemctl daemon-reload 

e. 启动您的Node.js应用程序:

sudo systemctl start my-app 

f. 设置开机自启动:

sudo systemctl enable my-app 

现在,您的Node.js应用程序将在Ubuntu启动时自动运行,并在发生故障时自动重启。

0