『壹』 linux如何后台运行node服务
在你的任意目录输入命令: npm install pm2 -g 1.找到全局环境PATH路径 输入命令: echo $PATH 回车后: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 你的路径和我的可能不一样,但没关系,你可以选择任何一个以:隔开的路径做为系统环境路径,我通常会选 /usr/local/bin 2:找到pm2的安装路径 在上面输入 npm install pm2 -g 全局安装时 /usr/sbin/nodejs/bin/pm2 -> /usr/sbin/nodejs/lib/node_moles/pm2/bin/pm2 /usr/sbin/nodejs/bin/pm2 是安装路径(你的可能和我的不一样) 3.好了都找到了, 就重要的一步要开始了,睁大你的双眼。 命令为: ln -s /usr/sbin/nodejs/bin/pm2 /usr/local/bin/ (注意空格) 格式: ln -s 空格 pm2安装路径 空格 系统环境路径 OK,搞定,接下来验证一把… [root@iZmwyb7v60px1zZ ~]# pm2 list 回车… $ pm2 start app.js # 启动app.js应用程序 $ pm2 start app.js –name=”api” # 启动应用程序并命名为 “api” $ pm2 start app.js –watch # 当文件变化时自动重启应用 $ pm2 start script.sh # 启动 bash 脚本 $ pm2 list # 列表 PM2 启动的所有的应用程序 $ pm2 monit # 显示每个应用程序的CPU和内存占用情况 $ pm2 show [app-name] # 显示应用程序的所有信息 $ pm2 logs # 显示所有应用程序的日志 $ pm2 logs [app-name] # 显示指定应用程序的日志 $ pm2 stop all # 停止所有的应用程序 $ pm2 stop 0 # 停止 id为 0的指定应用程序 $ pm2 restart all # 重启所有应用 $ pm2 reload all # 重启 cluster mode下的所有应用 $ pm2 gracefulReload all # Graceful reload all apps in cluster mode $ pm2 delete all # 关闭并删除所有应用 $ pm2 delete 0 # 删除指定应用 id 0 $ pm2 scale api 10 # 把名字叫api的应用扩展到10个实例 $ pm2 reset [app-name] # 重置重启数量 $ pm2 startup # 创建开机自启动命令 $ pm2 save # 保存当前应用列表 $ pm2 resurrect # 重新加载保存的应用列表 $ pm2 update # Save processes, kill PM2 and restore processes $ pm2 generate # Generate a sample json configuration file
『贰』 如何在 Ubuntu 上使用 pm2 和 Nginx 部署 Node.js 应用
pm2 是一个 Node.js 应用的进程管理器,它可以让你的应用程序保持运行,还有一个内建的负载均衡器。它非常简单而且强大,你可以零间断重启或重新加载你的 node 应用,它也允许你为你的 node 应用创建集群。
在这篇博文中,我会向你展示如何安装和配置 pm2 用于这个简单的 'Express' 应用,然后配置 Nginx 作为运行在 pm2 下的 node 应用的反向代理。
前提:
Ubuntu 16.04 – 64bit
Root 权限
第一步 – 安装 Node.js LTS
在这篇指南中,我们会从零开始我们的实验。首先,我们需要在服务器上安装 Node.js。我会使用 Nodejs LTS 6.x 版本,它能从 nodesource 仓库中安装。
从 Ubuntu 仓库安装python-software-properties软件包并添加 “nodesource” Nodejs 仓库。
sudo apt-get install -y python-software-properties
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash –
安装最新版本的 Nodejs LTS:
sudo apt-get install -y nodejs
安装完成后,查看 node 和 npm 版本。
node -v
npm -v
nodejs 在 pm2 下开机自启动
Node 应用在 pm2 中运行并使用 Nginx 作为反向代理。
『叁』 服务器部署nodejs的几种方法
由于自身特性的原因。node程序必须保持开启才能访问网站,而当我们关闭时这些进程都会被停止。有以下3种方法可以避免这个问题。
screen
Screen,虚拟终端管理器。可以在后台管理终端界面,防止SSH断开以后任务停止运行。
安装方法:
sudo apt-get screen(以ubuntu为例)
使用方法:
使用screen -S [任意id]命令进入一个名为id的终端,此时便可以随意执行操作例如执行sudo apt-get upgrade,或者其它消耗时间比较长的工作,像编译内核等等。
按ctrl+a后再按d保存虚拟终端,系统提示deatached即为保存成功接下来可以断开SSH终端,虚拟终端仍会执行。
访问已经创建好的终端screen -ls列出已经创建的正在后台运行的终端screen -r xxx进入终端例如 screen -r terminal1
彻底退出screen -r进入终端后执行exit即可完全退出
PM2
pm2 是一个带有负载均衡功能的Node应用的进程管理器.当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着
安装方法
npm install -g pm2
使用方法
启动应用pm2 start -watch app.js
重启应用pm2 restart app.js
显示进程列表pm2 list
停止某应用pm2 stop app_name|app_id
停止所有应用pm2 stop all
小白方案
个人目前用的是宝塔Linux面板,可以说是把Linux的各种操作都已比较简单的形式展现出来了,不需要什么Linux知识就能掌握宝塔官网了解一下
『肆』 heapUsed正常,但是rss不断涨,这是我自己的问题,还是nodejs的bug
信息太少了呀… pomelo没用过, sorry….不过感觉频繁而大量的内存请求和回收可能造成类似的现象耶….似乎内这个工具容可以比较实时的检测, 而且用起来很简单就是启动命令换一下pm start app.js之后pm2 monit实时监控试试吧
『伍』 如何让nodejs在linux后台运行
加入 主文件是 index.js那么可以用的方法有: 1.用forever 进行管理版npm install -g foreverforever start index.js 2. 用自带的服务权nohub nohup node index.js > myLog.log 2>&1 &