PM2 : 总是以精简模式显示程序列表

概述

PM2会根据屏幕的大小自动匹配显示模式, 即不同宽度的窗口显示的字段内容不同. 但有时候并不是很合适, 会出现显示错乱的情况. 在默认的情况下, 有一些字段并不需要显示, 因此就需要修改PM2来达到自定义显示方案. 

目前我的需求是, 不管屏幕多宽, 总是以精简模式(CONDENSED_MODE)显示, 且显示PID.

找到PM2源码中相关代码位置

使用 which, ls 等找到pm2 的源文件根目录. 

[root@s153 ~]# which pm2
/usr/local/node16/bin/pm2
[root@s153 ~]# ll /usr/local/node16/bin/pm2
lrwxrwxrwx 1 root root 31 6月  11 16:47 /usr/local/node16/bin/pm2 -> ../lib/node_modules/pm2/bin/pm2
[root@s153 ~]# cd /usr/local/node16/lib/node_modules/pm2
[root@s153 pm2]# ll
总用量 192
drwxr-xr-x   2 1001 1001     69 6月  11 16:47 bin
-rw-r--r--   1 1001 1001 102326 6月  11 16:47 CHANGELOG.md
-rw-r--r--   1 1001 1001   5006 6月  11 16:47 constants.js
-rw-r--r--   1 1001 1001   2845 6月  11 16:47 CONTRIBUTING.md
-rw-r--r--   1 1001 1001  34516 6月  11 16:47 GNU-AGPL-3.0.txt
-rw-r--r--   1 1001 1001    303 6月  11 16:47 index.js
drwxr-xr-x   7 1001 1001   4096 6月  11 16:47 lib
-rw-r--r--   1 1001 1001     17 6月  11 16:47 LICENSE
drwxr-xr-x 122 1001 1001   4096 6月  11 16:47 node_modules
-rw-r--r--   1 1001 1001   4477 6月  11 16:47 package.json
-rw-r--r--   1 1001 1001   3458 6月  11 16:47 paths.js
-rwxr-xr-x   1 1001 1001     87 6月  11 16:47 pm2
-rw-r--r--   1 1001 1001   6498 6月  11 16:47 README.md
drwxr-xr-x   2 1001 1001     45 6月  11 16:47 types

找到具体的pm2-ls.js 文件

[root@s153 pm2]# cd lib/API/UX
[root@s153 UX]# ll
总用量 56
-rw-r--r-- 1 1001 1001  4983 6月  11 16:47 helpers.js
-rw-r--r-- 1 1001 1001   190 6月  11 16:47 index.js
-rw-r--r-- 1 1001 1001  6638 6月  11 16:47 pm2-describe.js
-rw-r--r-- 1 1001 1001 13703 6月  25 09:48 pm2-ls.js
-rw-r--r-- 1 1001 1001  1187 6月  11 16:47 pm2-ls-minimal.js
-rw-r--r-- 1 root root 13679 6月  25 09:39 pm2-ls.origin.js

修改为精简模式

使用vi打开pm2-ls.js, 修改前先备份.

cp pm2-ls.js pm2-ls.origin.js
vi pm2-ls.js

vi 显示行号

: set number

修改 窗口宽度判断代码, 根据需要修改为合适的大小, 我改成了 1280. 即小于1280宽度的都以精简模式显示. 也可以直接改为 true

 12 const CONDENSED_MODE = (process.stdout.columns || 300) < 1280

修改表格的头, 如果是精简模式, 加上pid列( 第85行). 注意, 一定要加在 mode 后面.

     80   if (CONDENSED_MODE) {
     81     app_head = {
     82       id: id_width,
     83       name: 20,
     84       mode: 10,
     85       pid: 10,
     86       '↺': 6,
     87       status: 11,
     88       cpu: 10,
     89       memory: 10
     90     }

修改显示的字段内容.  第 247行加上了 || true, 即 不管是不是精简模式, 都加上l.pid 属性. 

    246       // PID
    247       if (!CONDENSED_MODE || true)
    248         obj[key].push(l.pid)
    249

保存, 试试吧! 是不是很清爽了!

: wq
[root@s153 UX]# pm2 ls
┌────┬────────────────────┬──────────┬──────────┬──────┬───────────┬──────────┬──────────┐
│ id │ name               │ mode     │ pid      │ ↺    │ status    │ cpu      │ memory   │
├────┼────────────────────┼──────────┼──────────┼──────┼───────────┼──────────┼──────────┤
│ 6  │ ------------       │ fork     │ 1805     │ 0    │ online    │ 0%       │ 48.9mb   │
│ 4  │ ------------------ │ fork     │ 1790     │ 0    │ online    │ 0%       │ 74.3mb   │
│ 5  │ ------------------ │ fork     │ 1798     │ 0    │ online    │ 0%       │ 67.4mb   │
│ 2  │ ------------------ │ fork     │ 1776     │ 0    │ online    │ 0%       │ 327.5mb  │
│ 3  │ ------------------ │ fork     │ 12189    │ 4    │ online    │ 0%       │ 74.1mb   │
│ 1  │ ---------------    │ fork     │ 1769     │ 0    │ online    │ 0%       │ 82.8mb   │
│ 0  │ ----------         │ fork     │ 1763     │ 0    │ online    │ 0%       │ 58.5mb   │
│ 7  │ ------------------ │ fork     │ 0        │ 45   │ stopped   │ 0%       │ 0b       │
└────┴────────────────────┴──────────┴──────────┴──────┴───────────┴──────────┴──────────┘

以上是我摸索的经验, 如果有更好的方式, 欢迎分享. 谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值