我是靠谱客的博主 俊逸胡萝卜,最近开发中收集的这篇文章主要介绍npm2 简单运用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

npm的pm2网址:https://www.npmjs.com/package/pm2

说明:

npm上的这个pm2[P(rocess) M(anager) 2 ]是在解决自己一个node项目时,找到的一个解决方案。具体pm2肯定有更多的功能,我在此处也就仅仅是将我用到的地方拿出来总结一下。

准备:

  • 安装node
  • 安装java(非必要,只是我这个项目中嵌入了java项目,所以这个例子中是必要的)

使用:

npm安装pm2

$ npm install pm2 -g

pm2

 

使用pm2来启动一个应用

$ pm2 start app.js

 

结合实际项目的使用,pm2.node.web.test.config.js是作为一个配置,让pm2去加载,然后去做管理启动。
pm2.node.web.test.config.js:

module.exports = {
    apps: [
        {//这个是我这个项目的启动脚本 启动一
            name: 'web-runner',
            script: './www',
            watch: true,//设置被监听
            env: {
                PORT: 3008//端口
            },
        },
        {//启动二
            name: 'web-runner',
            script: './www',
            watch: true,
            env: {
                PORT: 3009
            },
        },
        {//附带去启动一个java的jar,也是一个服务,通过启动一个shell脚本去启动对应的jar
            name: 'uniubi-user-login',
            script: './user.sh',
            watch: false
        },
        { //这个也是一个java项目,是微服务的一个服务组件之一,用来做Eureka注册用的,
          //对应启动一,这样使得不同的语言的项目都可以在Eureka中统一被发现与注册。
            name: 'uniubi-sidecar-node-web',
            script: './sidecar.sh',
            watch: false,
            env: {
                applicationName: 'uniubi-sidecar-node-web',
                sidecarDelegateIp: '192.168.20.171',
                sidecarPort: '9008',
                sidecarDelegatePort: '3008',
            }
        },
        {
            name: 'uniubi-sidecar-node-web',
            script: './sidecar.sh',
            watch: false,
            env: {
                applicationName: 'uniubi-sidecar-node-web',
                sidecarDelegateIp: '192.168.20.171',
                sidecarPort: '9009',
                sidecarDelegatePort: '3009',
            }
        }
    ],
};

关于配置的解释补充:
刚刚配置文件中所提及的java项目的sidecar其实什么业务都没有,只是单纯的做一件事,从系统中获取环境env

  private static Map<String, String> sysEnv = System.getenv();

然后再获取,然后再做自己的向Eureka注册的事。

  String applicationName = sysEnv.get("applicationName");
  int sidecarPort = Integer.valueOf(sysEnv.get("sidecarPort"));
  String sidecarDelegateIp = sysEnv.get("sidecarDelegateIp");
  int sidecarDelegatePort = Integer.valueOf(sysEnv.get("sidecarDelegatePort"));
  ...

在pm2 start pm2.node.web.test.config.js执行了这句话后,一下子就起了n多个项目,而且可以是不同的项目。当然在实际的生产中呢,我们会根据实际的情况去编写这个配置的js,设置根据不同的环境去写不同的js在不同的环境下执行。

 

在使用了pm2去启动了这些项目后,我们可以去监控我们想要监控的项目。比如,js项目不同于java项目,可能会出现一些没有考虑到的异常导致项目挂了。pm2可以自动重启,并且记录详情。
下面看一下我们实际的运行情况吧。上图我就是跑了另一个js配置文件。
我用到的其他pm2的指令(以后再补充):

  pm2 list //show pm2下管理的app  
  pm2 restart *.js //重新启动
  pm2 show <id|name> //查看某个app的详情
  pm2 delete * //删除
  pm2 stop * //停止

 



作者:Pale_Eyes
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

最后

以上就是俊逸胡萝卜为你收集整理的npm2 简单运用的全部内容,希望文章能够帮你解决npm2 简单运用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部