📜  服务文件 nodejs ubuntu (1)

📅  最后修改于: 2023-12-03 15:40:18.323000             🧑  作者: Mango

服务文件 nodejs ubuntu

在 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 应用程序。服务文件的创建是一项基本工作,我们希望您能够成功地创建您自己的服务文件。