之前有提到命令行连接腾讯云服务器老断开的问题,现在看来这只是个小凹陷,连个坑都还不算。毕竟现在俺已经不是对服务端一无所知的小白料,而是经历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
最后 有个好消息,就在俺写这篇文章的时候,俺接到了网站公安部备案被通过的捷报蛤蛤,希望是个好的开始:)网站名称打码吧,为了通过工信部备案,腾讯云的客服小哥哥帮我的网站起了很傻的名字。
网友评论