Nodejs linux环境下启动运行脚本

linux上部署Nodesjs服务,通常需要一些必要的工具,如node、pm2。线上运行需要预先检查好这些工具然后运行服务。下面以一个简单例子介绍基本流程,其它语言项目思路都是类似的。

以前以centos为例,通过pm2 cluster模式部署node,首先需要检查node安装情况。

node安装检查

echo 'start to check node env:'
   if ! type node 2>/dev/null || [[ `node -v` != 'v9.5.0' ]] ; then
     echo 'node 环境不匹配,开始构建:'
     curl -Ls -o- nvm地址 | bash
     source ~/.bashrc
     nvm install v9.5.0
     nvm alias default v9.5.0
   fi
echo ‘end'

通过type命令检查node是否安装,并检查版本。type node 会返回命令类型,如果不存在则会产生错误输出,此时将错误重定向到/dev/null。如果检测到存在该命令,那么返回类型。当出错时! type node 2>/dev/null 返回false。

当检测到node未安装,则下载nvm,并通过nvm安装指定版本的node。

安装依赖

安装相关依赖

echo 'npm install'
npm i --registry=地址 --production
echo 'success'

pm2的安装检查

同理检查pm2与node的检查方式类型,不存在则先进行安装。

echo 'check pm2'
   if ! type pm2 2>/dev/null || [[ `pm2 -v` != '2.1.5' ]] ; then
      echo '全局下不存在 pm2 开始,开始安装 pm2:'
     npm install pm2@2.1.5 -g --registry=仓库地址
     echo 'success!'
   fi
echo '检查全局 pm2 完成'

通过pm2启动项目

采用 –no-daemon 模式启动防止与 daemontools 可能在部署中可能产生的错误。
检查 pm2;需要注意的是,执行 pm2 -v 命令也会实例化 God Daemon

echo 'pm2 startOrGracefulReload..'
pm2 kill
exec pm2 startOrGracefulReload process.json --only travelCisSpiderScriptEngine --no-daemon
echo 'success'

上述4部分组成在一起最终构成node启动运行脚本,同理其它语言的启动服务都是类似的。确定一个服务启动需要哪些东西,按步骤完成即可。

### 如何在 Linux 系统中设置 Node.js 环境变量 #### 设置临时环境变量 可以在命令行终端通过 `export` 命令来定义临时性的环境变量。这些变量仅存在于当前会话期间,在关闭终端之后便会消失。 ```bash export NODE_ENV=production ``` 这种方式适合于测试或是开发过程中短期使用的场景[^1]。 #### 配置永久性环境变量 为了使环境变量持久化,可以编辑用户的 shell 配置文件(例如 `.bashrc`, `.zshrc` 或者其他相应的初始化脚本),这样每次启动新的shell时都会加载这些配置: 对于 Bash 用户来说,通常是在家目录下的`.bashrc` 文件里追加如下内容: ```bash echo 'export PATH=$PATH:/usr/local/bin/node' >> ~/.bashrc source ~/.bashrc ``` 上述操作将会把 `/usr/local/bin/node` 添加到系统的路径列表之中,并立即生效该更改以便后续可以直接调用 node 及 npm 命令而无需指定全路径[^3]。 另一种方法是修改全局级别的环境变量配置文件 `/etc/environment` ,这会影响到整个操作系统中的所有用户和服务进程。不过一般不推荐这样做除非确实有必要影响全部范围内的程序行为。 另外还可以利用专门用于管理多版本 Node 的工具 nvm (Node Version Manager),它允许轻松切换不同版本的同时也提供了方便的方式来设定特定版本所需的环境参数。 当涉及到具体的应用部署时,则更倾向于采用 dotenv 库的形式将敏感数据存储在一个名为 .env 的纯文本文件内并从中读取必要的键值对作为应用运行所需的各种选项之一[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值