美文网首页前端开发
linux如何后台运行node服务?

linux如何后台运行node服务?

作者: 皇甫圣坤 | 来源:发表于2019-07-05 10:35 被阅读0次

宽神曰:pm2!
对于一个前端新手来说,真的是一大坑,看了网上好多例子,但没有一个能说明白的,我发现没有哪个程序狗能把一个问题说的像我一样完美。不服来打死我,我不还手的。

1.安装pm2

你要在linux上安装pm2有很多方法,但我是用node的工具npm来完成安装的,所以在安装pm2之前需要先安装node。这里如果不会,就百度一个安装node,这个小事我就不做了,如果不服,那就不服!!

在你的任意目录输入命令: npm install pm2 -g

[root@iZmwyb7v60px1zZ ~]# npm install pm2 -g
/usr/sbin/nodejs/bin/pm2 -> /usr/sbin/nodejs/lib/node_modules/pm2/bin/pm2
/usr/sbin/nodejs/bin/pm2-dev -> /usr/sbin/nodejs/lib/node_modules/pm2/bin/pm2-dev
/usr/sbin/nodejs/bin/pm2-docker -> /usr/sbin/nodejs/lib/node_modules/pm2/bin/pm2-docker
/usr/sbin/nodejs/bin/pm2-runtime -> /usr/sbin/nodejs/lib/node_modules/pm2/bin/pm2-runtime
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 (node_modules/pm2/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.9: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

+ pm2@3.5.1
added 317 packages from 256 contributors in 33.801s

有几个warn不管他,因为在代码界,warn不算什么,只要没有error

这样安装完成后你执行命令: pm2 list

[root@VM_165_102_centos /]# pm2 list
回车后:

-bash: pm2: command not found
说明,没有配制到全局,虽然安装到全局,不知道为毛,
linux下不像windows下能自动创造一个环境变量去实现我们的全局。
所以我们需要创建一个linux下的软连接。

2:创建软连接

操作描述:在linux上的设置软连接相当于是windows下的配制环境变量一个道理,只是这里用了命令完成的操作。这里我们就开始为pm2创建软连接,这里首先要明确的是,我们要知道谁和谁去连接,问题来了?知道是哪个和哪个连接吗?好了,答案是:我们的linux下的全局$PATH和我们pm2的安装路径。那么我们如何知道他们的路径分别是哪里呢?

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_modules/pm2/bin/pm2
/usr/sbin/nodejs/bin/pm2是安装路径(你的可能和我的不一样)
3.好了都找到了,
就重要的一步要开始了,睁大你的双眼。
命令为: ln -s /usr/sbin/nodejs/bin/pm2 /usr/local/bin/(注意空格)
格式:ln -s空格pm2安装路径空格系统环境路径

[root@iZmwyb7v60px1zZ ~]# pm2 list
-bash: pm2: command not found
[root@iZmwyb7v60px1zZ ~]# pm2 list
-bash: pm2: command not found
[root@iZmwyb7v60px1zZ ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@iZmwyb7v60px1zZ ~]# whereis pm2
pm2:[root@iZmwyb7v60px1zZ ~]# find pm2
find: ‘pm2’: No such file or directory
[root@iZmwyb7v60px1zZ ~]# ^C
[root@iZmwyb7v60px1zZ ~]# ln -s /usr/sbin/nodejs/bin/pm2 /usr/local/bin/

OK,搞定,接下来验证一把…
[root@iZmwyb7v60px1zZ ~]# pm2 list
回车...

 -------------

__/\\\\\\\\\\\\\____/\\\\____________/\\\\____/\\\\\\\\\_____
 _\/\\\/////////\\\_\/\\\\\\________/\\\\\\__/\\\///////\\\___
  _\/\\\_______\/\\\_\/\\\//\\\____/\\\//\\\_\///______\//\\\__
   _\/\\\\\\\\\\\\\/__\/\\\\///\\\/\\\/_\/\\\___________/\\\/___
    _\/\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\//_____
     _\/\\\_____________\/\\\____\///_____\/\\\_____/\\\//________
      _\/\\\_____________\/\\\_____________\/\\\___/\\\/___________
       _\/\\\_____________\/\\\_____________\/\\\__/\\\\\\\\\\\\\\\_
        _\///______________\///______________\///__\///////////////__


                          Runtime Edition

        PM2 is a Production Process Manager for Node.js applications
                     with a built-in Load Balancer.

                Start and Daemonize any application:
                $ pm2 start app.js

                Load Balance 4 instances of api.js:
                $ pm2 start api.js -i 4

                Monitor in production:
                $ pm2 monitor

                Make pm2 auto-boot at server restart:
                $ pm2 startup

                To go further checkout:
                http://pm2.io/


                        -------------

[PM2] Spawning PM2 daemon with pm2_home=/root/.pm2
[PM2] PM2 Successfully daemonized
┌──────────┬────┬─────────┬──────┬─────┬────────┬─────────┬────────┬─────┬─────┬──────┬──────────┐
│ App name │ id │ version │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │
└──────────┴────┴─────────┴──────┴─────┴────────┴─────────┴────────┴─────┴─────┴──────┴──────────┘
 Use `pm2 show <id|name>` to get more details about an app
[root@iZmwyb7v60px1zZ ~]# 

ok!

常用命令

$ 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

相关文章

  • linux如何后台运行node服务?

    宽神曰:pm2!对于一个前端新手来说,真的是一大坑,看了网上好多例子,但没有一个能说明白的,我发现没有哪个程序狗能...

  • Linux下后台运行node和开机启动设置

    linux 后台运行node服务指令 1.后台运行命令 注意:路径要写对,要给绝对路径/usr/bin/nohu...

  • Linux服务器后台运行程序

    # Linux服务器后台运行程序在linux服务器上跑程序,要跑几天,又不能一直开着客户端,就需要在后台运行。命令...

  • node启动器

    简介 node运行js文件,通常是在后台node xxx.js即可,但后台关了服务或者关机就终止了。如果要让这个服...

  • nginx nohup后台运行程序和关闭程序

    后台运行node服务 在xshell中运行如下 然后在XShell中提示了nohup成功后:nohup: igno...

  • Supervisor 守护Node服务器进程

    Supervisor 守护Node服务器进程 项目中遇到有些脚本需要通过后台进程运行的项目,比如node、tomc...

  • node.js入门

    Node.js 是一个基于ChromeV8 引擎的JavaScript 运行环境。 1.node是服务器语言,后台...

  • linux node 后台一直运行

    1. 问题描述 写了一个node小程序放在服务器上, 发现关闭shell终端(我用的Xshell连接服务器)后, ...

  • 【服务器】supervisor的安装配置及使用

    Linux的后台进程运行有好几种方法,例如nohup,screen等,但是,如果是一个服务程序,要可靠地在后台运行...

  • Linux命令后台运行

    Linux后台运行命令有两种方式: cmd & : 后台运行,关掉终端会停止运行 nohup cmd & : 后台...

网友评论

    本文标题:linux如何后台运行node服务?

    本文链接:https://www.haomeiwen.com/subject/etkshctx.html