feat(processmonitor): Add CPU monitoring and display CPU in process list

This commit is contained in:
2025-08-30 23:36:26 +00:00
parent 8f96118e0c
commit fa50ce40c8
5 changed files with 52 additions and 10 deletions

View File

@@ -20,13 +20,13 @@ export function registerListCommand(smartcli: plugins.smartcli.Smartcli) {
console.log('Process List:');
console.log(
'┌─────────┬─────────────┬───────────┬───────────┬──────────┬──────────┐',
'┌─────────┬─────────────┬───────────┬───────────┬──────────┬──────────┬─────────┐',
);
console.log(
'│ ID │ Name │ Status │ PID │ Memory │ Restarts │',
'│ ID │ Name │ Status │ PID │ Memory │ CPU │ Restarts │',
);
console.log(
'├─────────┼─────────────┼───────────┼───────────┼──────────┼──────────┤',
'├─────────┼─────────────┼───────────┼───────────┼──────────┼──────────┼──────────┤',
);
for (const proc of processes) {
@@ -38,13 +38,18 @@ export function registerListCommand(smartcli: plugins.smartcli.Smartcli) {
: '\x1b[33m';
const resetColor = '\x1b[0m';
const cpuStr = typeof proc.cpu === 'number' && isFinite(proc.cpu)
? `${proc.cpu.toFixed(1)}%`
: '-';
// Name is not part of IProcessInfo; show ID as placeholder for now
const nameDisplay = String(proc.id);
console.log(
`${pad(String(proc.id), 7)}${pad(String(proc.id), 11)}${statusColor}${pad(proc.status, 9)}${resetColor}${pad((proc.pid || '-').toString(), 9)}${pad(formatMemory(proc.memory), 8)}${pad(proc.restarts.toString(), 8)}`,
`${pad(String(proc.id), 7)}${pad(nameDisplay, 11)}${statusColor}${pad(proc.status, 9)}${resetColor}${pad((proc.pid || '-').toString(), 9)}${pad(formatMemory(proc.memory), 8)} ${pad(cpuStr, 8)} ${pad(proc.restarts.toString(), 8)}`,
);
}
console.log(
'└─────────┴─────────────┴───────────┴───────────┴──────────┴──────────┘',
'└─────────┴─────────────┴───────────┴───────────┴──────────┴──────────┴──────────┘',
);
},
{ actionLabel: 'list processes' },