温馨提示×

centos nodejs开机自启咋设

小樊
38
2026-10-02 21:54:13
栏目: 编程语言

在 CentOS 上让 Node.js 程序开机自启,常见有几种方式,按系统版本和习惯选一个就行。


一、CentOS 7 / 8(systemd,推荐)

1. 准备你的 Node 启动命令

假设:

  • Node 路径:/usr/bin/node
  • 项目目录:/opt/myapp
  • 启动文件:/opt/myapp/app.js

先确认 node 路径:

which node

2. 创建 systemd 服务文件

sudo vi /etc/systemd/system/myapp.service

内容示例:

[Unit]
Description=Node.js App
After=network.target

[Service]
ExecStart=/usr/bin/node /opt/myapp/app.js
WorkingDirectory=/opt/myapp
Restart=always
User=root
Environment=NODE_ENV=production

[Install]
WantedBy=multi-user.target

如果是普通用户运行,把 User=root 改成你的用户名


3. 设置开机自启

sudo systemctl daemon-reload
sudo systemctl enable myapp
sudo systemctl start myapp

查看状态:

systemctl status myapp

二、CentOS 6(init.d,老系统)

1. 写启动脚本

vi /etc/init.d/myapp

示例:

#!/bin/bash
# chkconfig: 2345 80 90
# description: node app

case "$1" in
start)
  /usr/bin/node /opt/myapp/app.js &
  ;;
stop)
  pkill node
  ;;
esac
exit 0

2. 添加执行权限并开机启动

chmod +x /etc/init.d/myapp
chkconfig --add myapp
chkconfig myapp on

三、用 PM2(最省事,推荐开发/生产)

1. 安装 PM2

npm install -g pm2

2. 启动项目

pm2 start /opt/myapp/app.js

3. 设置开机自启

pm2 startup
pm2 save

CentOS 下 PM2 会自动生成 systemd 服务


四、常见问题

  • 端口占用:确认 80/443 没被占用
  • 权限问题:日志文件目录要有写权限
  • 环境变量:在 service 文件里用 Environment=

如果你愿意,可以告诉我:

  • CentOS 版本(cat /etc/redhat-release)
  • Node 启动方式(裸 node / npm start / pm2)

我可以给你完全对应的配置。

0 踩