第 0004 荐:PM2,比 Supervisor 更强大易用的进程管理工具 - 图1

Supervisor 是Python开发的一个非常优秀的类Unix系统进程管理工具,但是在Windows上就无能为力了,因为supervisor在GitHub上的官方仓库有这么一句话:Supervisor will not run at all under any version of Windows.

第 0004 荐:PM2,比 Supervisor 更强大易用的进程管理工具 - 图2

或许你会说,我根本不用Windows服务器,甚至做开发的时候也不用Windows系统… 但是,万一哪天你的客户粑粑有这个需求呢…

所以,今天 司空荐惯 给你推荐一个工具: PM2

介绍

PM2官方原话如下:PM2 is a production process manager for Node.js applications with a built-in load balancer. It allows you to keep applications alive forever, to reload them without downtime and to facilitate common system admin tasks.

PM2 是一个带有负载均衡功能的 Node.js 应用进程管理器。Node.js 应用进程管理器??

骚年,别方!

你以为你家的菜刀就只能切菜了?我还能用它给你剃个头…

使用

由于 Linux 环境下操作太简单了,我们挑个有挑战性的,我们在 Windows 操作系统下玩下。

由于官方说 PM2 是个 Node.js 应用的进程管理器,所以我们挑个Go语言开发的程序,这个程序就是书栈网Windows版的程序BookStack ==> https://gitee.com/truthhun/BookStack/releases/v2.9

安装

我假装你已经在Windows上安装了 node.js

  1. 在相应路径下创建一个666.bat的文件
  2. 编辑文件,粘贴如下内容:
    1. call npm config set registry https://registry.npm.taobao.org
    2. call npm install -g pm2
    3. call npm install -g pm2-windows-startup
    4. call pm2-startup install
  3. 双击666.bat
  4. cmd执行pm2 -h,看到如下内容,即表示安装成功: 第 0004 荐:PM2,比 Supervisor 更强大易用的进程管理工具 - 图3

启动程序

进入BookStack程序所在目录,在cmd中执行:

  1. pm2 start BookStack.exe

然后你通过如下命令就可以看到BookStack程序已经启动了:

  1. pm2 list
  2. # 或 pm2 ls

第 0004 荐:PM2,比 Supervisor 更强大易用的进程管理工具 - 图4

没错,就这么简单!

等等…

还有个需求就是我的程序要跟着Windows开机启动…

那执行下面这条语句:

  1. pm2 save

第 0004 荐:PM2,比 Supervisor 更强大易用的进程管理工具 - 图5

然后,请重启 1024 次Windows系统验证程序有没有随着系统重启…

进阶用法

有时候,你的程序还需要指定相关参数才能运行。比如你的程序需要这样才能运行:

  1. helloworld.exe serve --config /path/to/config --port 10086

那么,你可以在你的程序目录下(或其他路径),添加一个daemon.json的文件:

  1. {
  2. "name": "helloworld",
  3. "script": "helloword.exe",
  4. "cwd": "C:\\Users\\Administrator\\Desktop\\helloword",
  5. "exec_mode": "fork",
  6. "autorestart": true,
  7. "args": ["serve", "--config", "C:\\Users\\Administrator\\Desktop\\helloword\\helloworld.conf", "--port", "10086"],
  8. "env": {},
  9. "out_file": "C:\\Users\\Administrator\\Desktop\\helloword\helloword-out.log",
  10. "error_file": "C:\\Users\\Administrator\\Desktop\\helloword\helloword-err.log"
  11. }

然后执行:

  1. pm2 start daemon.json

程序即可启动。

你学废了吗?

相关链接


您关注的,都值得推荐。

关注微信公众号刻舟求荐,我们不荐不散!

qrcode_for_gh_ab8f289c2d55_430.jpg