美文网首页
使用pm2守护nodejs进程

使用pm2守护nodejs进程

作者: greennn | 来源:发表于2020-10-21 15:12 被阅读0次

    之前有提到命令行连接腾讯云服务器老断开的问题,现在看来这只是个小凹陷,连个坑都还不算。毕竟现在俺已经不是对服务端一无所知的小白料,而是经历liao几次端口进程无故被杀死且不输出任何日志的坑坑的中白了。也许在大佬眼中只是不值一提的小事,见笑,但对俺这刚好要进行互联网公安部备案的小学生来说,简直是灭顶之灾,因为进程无故被杀,造成页面无法访问,俺的公安部备案被驳回了,气。现在用上了pm2守护进程,打算观察一阵子看看有没有效果。下面是简单的过程描述:

    之前koa2项目是通过 'nohup npm start & ' 运行的,运行在3020端口,它按道理会保持端口进程运行在后台,且会输出日志在nohup.out文件中。但是今天访问页面,发现服务器又出错了,连接服务器看了看端口进程是否还安好,一看,果然已经被杀死了。查看日志,发现并没有什么有用的信息。

    使用pm2

    服务器上全局安装pm2,直接使用会提示未找到命令。

    npm install pm2 -g
    /root/node-v9.3.0-linux-x64/bin/pm2 -> /root/node-v9.3.0-linux-x64/lib/node_modules/pm2/bin/pm2
    /root/node-v9.3.0-linux-x64/bin/pm2-dev -> /root/node-v9.3.0-linux-x64/lib/node_modules/pm2/bin/pm2-dev
    /root/node-v9.3.0-linux-x64/bin/pm2-docker -> /root/node-v9.3.0-linux-x64/lib/node_modules/pm2/bin/pm2-docker
    /root/node-v9.3.0-linux-x64/bin/pm2-runtime -> /root/node-v9.3.0-linux-x64/lib/node_modules/pm2/bin/pm2-runtime
    npm WARN ws@7.2.5 requires a peer of bufferutil@^4.0.1 but none is installed. You must install peer dependencies yourself.
    npm WARN ws@7.2.5 requires a peer of utf-8-validate@^5.0.2 but none is installed. You must install peer dependencies yourself.
    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.3 (node_modules/pm2/node_modules/fsevents):
    npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
    
    + pm2@4.5.0
    added 196 packages in 11.075s
    [root@VM_0_9_centos ~]# cd blog-server
    [root@VM_0_9_centos blog-server]# pm2
    -bash: pm2: 未找到命令
    

    这时需要在上面安装信息中找到pm2的安装路径,复制,使用软连让它可以被直接使用。

    [root@VM_0_9_centos ~]# ln -s /root/node-v9.3.0-linux-x64/lib/node_modules/pm2/bin/pm2 /usr/local/bin/
    [root@VM_0_9_centos ~]# pm2
    
                            -------------
    
    __/\\\\\\\\\\\\\____/\\\\____________/\\\\____/\\\\\\\\\_____
     _\/\\\/////////\\\_\/\\\\\\________/\\\\\\__/\\\///////\\\___
      _\/\\\_______\/\\\_\/\\\//\\\____/\\\//\\\_\///______\//\\\__
       _\/\\\\\\\\\\\\\/__\/\\\\///\\\/\\\/_\/\\\___________/\\\/___
        _\/\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\//_____
         _\/\\\_____________\/\\\____\///_____\/\\\_____/\\\//________
          _\/\\\_____________\/\\\_____________\/\\\___/\\\/___________
           _\/\\\_____________\/\\\_____________\/\\\__/\\\\\\\\\\\\\\\_
            _\///______________\///______________\///__\///////////////__
    
    
                              Runtime Edition
    

    接下来就是进到项目文件夹,运行 pm2 start app.js 就好了,我用的是最简单的功能,pm2还是很强大滴,复杂点的使用方法以后慢慢学吧,先观察几天看看效果。

    暂时搞定~

    [root@VM_0_9_centos blog-server]# pm2 start app.js
    [PM2] Starting /root/blog-server/app.js in fork_mode (1 instance)
    [PM2] Done.
    ┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐
    │ id │ name               │ mode     │ ↺    │ status    │ cpu      │ memory   │
    ├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤
    │ 0  │ app                │ fork     │ 0    │ online    │ 0%       │ 15.3mb   │
    └────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘
    [root@VM_0_9_centos blog-server]# packet_write_wait: Connection to 111.230.25.202 port 22: Broken pipe
    

    最后 有个好消息,就在俺写这篇文章的时候,俺接到了网站公安部备案被通过的捷报蛤蛤,希望是个好的开始:)网站名称打码吧,为了通过工信部备案,腾讯云的客服小哥哥帮我的网站起了很傻的名字。


    相关文章

      网友评论

          本文标题:使用pm2守护nodejs进程

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