Этот проект начался с необходимости быстро просмотреть, сколько ОЗУ (оперативной памяти) использует мой компьютер. Будучи пользователем Mac, мне нужно запустить ActivityMonitor и перейти на вкладку памяти.
Моей первой мыслью было, что этот процесс можно было бы упростить и запустить прямо из терминала. Именно здесь на помощь приходит модуль узлов os, поскольку он может предоставить нам полезную информацию о нашей операционной системе и оборудовании. Нам также нужно запустить это приложение как дочерний процесс, поэтому нам потребуется использовать метод spawn из модуля child_process.
ОС Модуль
Модуль os
предоставляет нам доступ к свойствам и методам нашей операционной системы. Нас интересуют методы os: totalmem()
и freemem()
.
const os = require('os') // returns total ram on machine in bytes as an integer console.log(os.totalmem()) // returns free ram on machine in bytes as an integer console.log(os.freemem())
Модуль child_process
Модуль child_process
дает узлу возможность управлять и порождать подпроцессы. Пример кода ниже запустит ls -a
. Мы собираемся использовать это для запуска файла узла в качестве подпроцесса.
const { spawn } = require('child_process') // spawn(command[, args][, options]) spawn('ls', ['-a'], { stdio: 'inherit'})
Созданиеприложения
Нам нужно создать файл с именем printRam.js, который будет использовать модуль os для получения значений общего и свободного ОЗУ. Затем нам нужно будет преобразовать их из байтов в гигабайты и распечатать для пользователя.
Далее нам нужно создать файл с именем index.js, который будет запускать узел printRam.js как дочерний процесс, используя метод spawn из модуля child_process.
Наконец, нам нужно инкапсулировать вызов порождения в функцию, чтобы передать его в setInterval (помните, что setInterval принимает функции обратные вызовы, а не вызовы функций). На этом этапе наше приложение должно распечатывать данные об использовании ОЗУ в реальном времени и обновлять значения каждую секунду.
Бегать
Перейдите к своему терминалу и запустите узел в файле index.js.
node ~/path-to-file/index.js
Вуаля, мы можем наблюдать за использованием ОЗУ в режиме реального времени с нашего терминала. Чтобы убить этот процесс, просто нажмите Control+C.
Total RAM => 32.00GB Free RAM => 11.77GB
Мы также можем создать собственную оболочку псевдоним для запуска этого приложения, добавив приведенную ниже строку в наш файл .bashrc (не забудьте отредактировать путь к файлу index.js). Затем нажмите «Сохранить», закройте файл и запустите exec bash. Теперь мы можем запустить это приложение, просто набрав «ram» в терминале.
alias ram='node ~/path-to-file/index.js'
Спасибо за чтение, если у вас есть какие-либо вопросы, задайте их ниже.