/
spirzen
/
it-code-examples
Обзор
Документация
Войти
/
spirzen
/
it-code-examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/javascript/js-501-103-013/main.js
87 строк
3 KB
Spirzen
Code migration pack
09 июн 2026, 01:41
09 июн 2026, 01:41
cebc284
Код
Авторство
О чём код?
const { execSync } = require('child_process'); const os = require('os'); function getProcesses(filterName = '') { let command; let args; const platform = os.platform(); if (platform === 'win32') { command = 'wmic'; args = ['process', 'get', 'Name,PID,CPU,Memory'].join(' '); } else { // Linux / macOS command = 'ps'; args = ['-ef']; } try { const output = execSync(`${command} ${args}`, { encoding: 'utf-8' }); const lines = output.trim().split('\n'); const processes = []; // Пропускаем заголовок (если есть) const startLine = platform === 'win32' ? 1 : 1; for (let i = startLine; i < lines.length; i++) { const line = lines[i].trim(); if (!line) continue; let processObj = {}; if (platform === 'win32') { // Простой парсинг для wmic (может требовать доработки для сложных случаев) const parts = line.split(/\s+/); if (parts.length >= 2) { processObj = { name: parts[0], pid: parts[1] || 'N/A', cpu: parts[2] || 'N/A', memory: parts[3] || 'N/A' }; } } else { // Парсинг для ps -ef (UID PID PPID C STIME TTY TIME CMD) const parts = line.split(/\s+/); if (parts.length >= 7) { processObj = { uid: parts[0], pid: parts[1], ppid: parts[2], time: parts[6], // Время выполнения cmd: parts.slice(7).join(' ') // Команда }; } } if (Object.keys(processObj).length > 0) { if (filterName && !processObj.name?.includes(filterName) && !processObj.cmd?.includes(filterName)) { continue; } processes.push(processObj); } } return processes; } catch (error) { console.error('Ошибка выполнения команды:', error.message); return []; } } function displayProcesses(processes) { console.table(processes); } // Пример вызова const allProcs = getProcesses(); displayProcesses(allProcs.slice(0, 10)); // Показать первые 10 const nodeProcs = getProcesses('node'); if (nodeProcs.length > 0) { console.log('\nНайдены процессы Node.js:'); displayProcesses(nodeProcs); }