21xrx.com
2024-11-22 08:23:34 Friday
登录
文章检索 我的文章 写文章
如何让Node.js在开机时自动启动
2023-06-30 10:22:22 深夜i     --     --
Node js 开机启动 自动启动 Linux Systemd

Node.js是一种流行的JavaScript运行时,它可以让开发者用JavaScript语言编写服务器端代码。对于一些常驻的后台服务来说,需要在操作系统启动时自动启动Node.js程序,以确保服务的持续运行。那么,如何让Node.js在开机时自动启动呢?

1.使用pm2

pm2是Node.js的一个进程管理工具,它可以使Node.js程序在开机时自动启动,并且可以在程序崩溃时自动重启。使用pm2可以让开发者管理多个Node.js项目,监控项目的运行情况。在用pm2管理项目时,需要运行以下命令:


pm2 start app.js

pm2 save

pm2 startup

第一条命令启动程序,第二条命令将程序信息保存到pm2的进程列表中,第三条命令生成开机自启动脚本。这样,开机时pm2会自动读取已保存的进程信息,并将其中的程序启动。

2.使用systemd

systemd是Linux系统的一个服务管理框架,可以在开机时自动启动各种服务。如果你的系统采用systemd作为服务管理框架,可以按照以下步骤将Node.js程序添加到systemd中:

1.创建一个名为myapp.service的文件,其中包含以下内容:


[Unit]

Description=my Node.js app

After=network.target

[Service]

User=yourusername

ExecStart=/usr/bin/node /path/to/myapp.js

Restart=always

[Install]

WantedBy=multi-user.target

其中,Description是服务的描述,After表示服务应该在network.target之后启动,User指定了运行服务的用户,ExecStart指定了服务的启动命令,Restart表示服务崩溃时应该自动重新启动,WantedBy说明这个服务应该在multi-user.target之下启动。

2.将该文件移动到/etc/systemd/system目录下,然后运行以下命令:


sudo systemctl daemon-reload

sudo systemctl enable myapp.service

第一个命令告诉systemd重新加载配置文件,第二个命令将服务添加到开机启动项中。这样,当系统启动时,systemd就会自动启动你的Node.js应用程序。

总结

在Linux系统中,可以采用pm2和systemd两种方式将Node.js程序设置为开机启动。pm2需要安装pm2进程管理器,然后使用pm2 start启动应用程序并添加到pm2的进程列表中,最后使用pm2 startup生成开机启动脚本。systemd则需要创建一个myapp.service文件,然后添加到systemd中,最后使用systemctl enable命令将服务添加到开机启动项中。这样,无论你选择哪种方式,都可以实现在开机时自动启动Node.js应用程序,让你的服务在系统启动后自动运行。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复