node.js开机自启动脚本文件

当我们需要在服务器上部署Node.js程序时,经常需要在服务器开机时自动运行我们的程序,这时候就需要创建一个开机自启动的脚本文件。下面是创建node.js开机自启动脚本文件的完整攻略:

1. 创建脚本文件

我们可以在Linux系统中执行以下命令在指定路径下创建一个脚本文件,在执行该脚本时系统会自动运行Node.js程序:

sudo touch /etc/init.d/<your-script-name>
sudo chmod +x /etc/init.d/<your-script-name>

其中,<your-script-name> 为脚本文件的名称,可以根据实际情况自行定义。

2. 编写脚本代码

打开创建的脚本文件,在其中编写启动Node.js程序的代码。例如,下面是一个简单的示例,用于启动一个Node.js服务器:

#!/bin/bash

#定义NODE_HOME环境变量
export NODE_HOME=<node.js安装路径>

#定义node程序名称
export NODE_FILE=<node.js程序文件路径>

#定义node程序名称
export NODE_APP=<node.js应用程序文件路径>

case $1 in
start)
    echo "Starting <your-script-name> ..."
    cd $NODE_APP
    #使用node启动程序
    nohup $NODE_HOME/bin/node $NODE_FILE &
    ;;
stop)
    echo "Stopping <your-script-name> ..."
    #查找node进程的PID,并kill它
    pid=$(ps aux | grep $NODE_APP/$NODE_FILE | grep -v grep | awk '{print $2}')
    kill $pid
    ;;
restart)
    echo "Restarting <your-script-name> ..."
    $0 stop
    sleep 1s
    $0 start
    ;;
*)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
esac

exit 0

3. 添加服务至系统服务列表

将脚本文件加入系统服务列表中,输入以下命令:

sudo update-rc.d <your-script-name> defaults

至此,已经成功将脚本添加至系统服务,系统会在开机时自动调用该脚本文件。

示例1

需求

在开机时自动启动Node.js应用程序,端口为8000,程序文件在/home/ubuntu/app/index.js

创建脚本

执行以下命令创建一个名为auto_start_app的脚本文件:

sudo touch /etc/init.d/auto_start_app
sudo chmod +x /etc/init.d/auto_start_app

编写脚本

打开auto_start_app脚本文件,粘贴以下代码:

#!/bin/bash

#定义node.js安装路径
export NODE_HOME=/usr/local/nodejs

#定义node.js应用程序路径
export NODE_APP=/home/ubuntu/app

case $1 in
start)
    echo "Starting application ..."
    cd $NODE_APP
    nohup $NODE_HOME/bin/node index.js >/dev/null 2>&1 &
    ;;
stop)
    echo "Stopping application ..."
    pid=$(ps aux | grep $NODE_APP/index.js | grep -v grep | awk '{print $2}')
    kill $pid
    ;;
restart)
    echo "Restarting application ..."
    $0 stop
    sleep 1s
    $0 start
    ;;
*)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
esac

exit 0

将脚本加入系统服务列表

sudo update-rc.d auto_start_app defaults

至此,该Node.js应用程序将会在开机时自动启动。

示例2

需求

在开机时自动启动一个实时聊天的Node.js程序,端口为3000,程序文件在/home/ubuntu/chat/index.js

创建脚本

执行以下命令创建一个名为auto_start_chat的脚本文件:

sudo touch /etc/init.d/auto_start_chat
sudo chmod +x /etc/init.d/auto_start_chat

编写脚本

打开auto_start_chat脚本文件,粘贴以下代码:

#!/bin/bash

#定义node.js安装路径
export NODE_HOME=/usr/local/nodejs

#定义node.js应用程序路径
export NODE_APP=/home/ubuntu/chat

case $1 in
start)
    echo "Starting chat server ..."
    cd $NODE_APP
    nohup $NODE_HOME/bin/node index.js >/dev/null 2>&1 &
    ;;
stop)
    echo "Stopping chat server ..."
    pid=$(ps aux | grep $NODE_APP/index.js | grep -v grep | awk '{print $2}')
    kill $pid
    ;;
restart)
    echo "Restarting chat server ..."
    $0 stop
    sleep 1s
    $0 start
    ;;
*)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
esac

exit 0

将脚本加入系统服务列表

sudo update-rc.d auto_start_chat defaults

至此,该实时聊天程序将会在开机时自动启动,在开发实时应用中十分方便。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:node.js开机自启动脚本文件 - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • js构建二叉树进行数值数组的去重与优化详解

    JS构建二叉树进行数值数组的去重与优化详解 随着JS在前端的应用越来越广泛,开发者们往往会面临着重复数据清洗的问题,那么,如何应对这种情况呢?本篇文章将详细介绍使用JS构建二叉树进行数值数组去重的优化方法。 什么是二叉树? 在介绍具体实现方法之前,我们先来了解一下什么是二叉树。 二叉树是一种树形结构,由节点和边组成。每个节点最多有两个子节点,分别称为左子节点…

    node js 2023年6月8日
    00
  • 爬虫利器Puppeteer实战

    Puppeteer 实战攻略 Puppeteer 是一个 Node.js 库,它提供了一个高级 API,用于控制 headless Chrome 或 Chromium 浏览器。Puppeteer 通过模拟人类的操作来完成自动化任务,因此可以用于构建各种各样的爬虫。 安装 Puppeteer 安装 Puppeteer 十分简单,只需执行以下命令即可: npm …

    node js 2023年6月8日
    00
  • Egret引擎开发指南之创建项目

    创建项目是使用Egret引擎进行游戏开发的第一步,本文将详细讲解如何在Egret引擎中创建项目。 步骤 1:安装Egret引擎 在开始创建项目之前,您需要先安装Egret引擎,您可以在Egret官网下载并安装最新版本的Egret引擎。 步骤 2:创建项目 打开Egret Wing IDE(Egret中最常用的IDE),点击“新建项目”按钮来创建一个新项目。 …

    node js 2023年6月8日
    00
  • Nodejs的express使用教程

    Node.js的Express使用教程 Express是一个基于Node.js平台的Web应用开发框架,它提供了一系列强大的特性,帮助我们快速而简单地构建高效的Web应用程序。本教程将带领你了解如何使用Node.js平台上的Express框架。 安装Express 在开始使用Express框架前,我们先需要安装它。在终端中输入以下命令安装: npm inst…

    node js 2023年6月7日
    00
  • 基于Element的组件改造的树形选择器(树形下拉框)

    基于Element的组件改造的树形选择器(树形下拉框)的完整攻略如下: 准备工作 安装 Element UI。可以在项目中使用 npm 安装,安装命令为 npm i element-ui -S,也可以通过 CDN 引入。 引入相关的文件。在 HTML 文件中,需要引入 Element UI 的样式文件和 JS 文件,还需要引入一个自定义的 CSS 文件和一个…

    node js 2023年6月8日
    00
  • Node.js高级编程cluster环境及源码调试详解

    Node.js高级编程cluster环境及源码调试详解 本文将详细讲解 Node.js 的 cluster 环境及源码调试,包含以下内容: 理解Cluster Cluster 是 Node.js 的一个核心模块,它允许你创建一组子进程来共享同一个服务器端口,并在每个子进程之间分配工作负载。这就允许我们利用服务器的所有 CPU 核心,以提高 Node.js 应…

    node js 2023年6月8日
    00
  • nodejs实现登陆验证功能

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,许多 Web 项目都使用 Node.js 来实现后端服务。在 Web 开发中,登陆验证功能是非常常见的一个需求,本文将详细讲解如何使用 Node.js 实现登陆验证功能。 实现思路 登陆验证功能的实现一般分为以下几个步骤: 创建登录页面,用户输入账号密码提交登录请求。 服…

    node js 2023年6月8日
    00
  • Nodejs中crypto模块的安全知识讲解

    Node.js自带的crypto模块提供了丰富的加密、解密、哈希和随机数等方面的功能。在使用crypto模块的时候,需要注意以下几点安全知识: 1.密钥的安全存储 在加密和解密过程中,密钥扮演着非常重要的角色。因此,需要保护好密钥的安全,避免密钥泄露导致数据被非法获取。一种可行的方案是将密钥存储在本地的环境变量中,这样可以避免密钥存储在代码中导致泄露。 co…

    node js 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部