📅  最后修改于: 2023-12-03 15:40:18.323000             🧑  作者: Mango
在 Ubuntu 系统上搭建 Node.js 服务是一项基本工作,本文将介绍如何创建一个 Node.js 服务文件(service file),以便在系统启动时自动启动和管理 Node.js 应用程序。
服务文件是操作系统在启动时自动加载和管理服务的一种方式。服务文件可以指定服务在启动时需要执行的命令、环境变量、工作目录等相关信息。
在 Ubuntu 系统中,服务文件一般存放在 /etc/systemd/system/
目录下,以 .service
后缀结尾,例如:
/etc/systemd/system/myapp.service
首先,我们需要创建一个服务文件,命令如下:
sudo nano /etc/systemd/system/myapp.service
在打开的编辑器中,粘贴以下内容:
[Unit]
Description=My Node.js App
After=network.target
[Service]
Environment="NODE_ENV=production"
Type=simple
User=username
WorkingDirectory=/var/www/myapp
ExecStart=/usr/bin/node /var/www/myapp/server.js
Restart=on-failure
[Install]
WantedBy=multi-user.target
上述服务文件包含以下内容:
[Unit]
:描述服务信息,包括服务名称和启动顺序等[Service]
:描述服务实际执行的命令、环境变量、工作目录等相关信息[Install]
:描述服务安装位置和启动方式等信息请注意将 username
和 /var/www/myapp
替换为您的实际用户名和应用程序目录。
在我们创建服务文件后,我们需要重新加载 systemd 的服务信息,以使它能够检测到新的服务文件。命令如下:
sudo systemctl daemon-reload
要启动新创建的服务,使用以下命令:
sudo systemctl start myapp
如果一切正常,您将不会看到任何输出。
要检查服务的状态,使用以下命令:
systemctl status myapp
如果一切正常,输出应类似于以下内容:
● myapp.service - My Node.js App
Loaded: loaded (/etc/systemd/system/myapp.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-10-12 14:46:53 UTC; 9s ago
Main PID: 1234 (node)
Tasks: 8 (limit: 1161)
CGroup: /system.slice/myapp.service
└─1234 /usr/bin/node /var/www/myapp/server.js
Oct 12 14:46:53 ubuntu systemd[1]: Started My Node.js App.
要使您的服务在系统启动时自动启动,您需要将其设置为自动启动。使用以下命令:
sudo systemctl enable myapp
现在,您的服务将在系统启动时自动启动。
要停止服务,使用以下命令:
sudo systemctl stop myapp
要重新启动服务,使用以下命令:
sudo systemctl restart myapp
这篇文章介绍了如何在 Ubuntu 系统上创建 Node.js 服务文件,以便在系统启动时自动启动和管理 Node.js 应用程序。服务文件的创建是一项基本工作,我们希望您能够成功地创建您自己的服务文件。