OS
- os.EOL
- os.arch()
- os.constants
- os.cpus()
- os.endianness()
- os.freemem()
- os.homedir()
- os.hostname()
- os.loadavg()
- os.networkInterfaces()
- os.platform()
- os.release()
- os.tmpdir()
- os.totalmem()
- os.type()
- os.uptime()
- os.userInfo([options])
- Константы ОС
Стабильность: 2 – Стабильная
Модуль os
предоставляет набор операционных системных методов. Его можно вызвать так:
const os = require('os');
os.EOL
Добавлено в v0.7.8<Строка>
Строковая константа, определяющая маркер конца текущей строки:
\n
на POSIX\r \n
на Windows
os. arch()
Добавлено в v0.5.0Метод os.arch()
возвращает строку, которая определяет архитектуру CPU
на данной ОС
для которой компилируется бинарный Node.js.
Текущие возможные значения:
'arm'
, 'arm64'
, 'ia32'
, 'mips'
, 'mipsel'
, 'ppc'
, 'ppc64'
, 's390'
,'s390x'
, 'x32'
, 'x64'
и 'x86'
Равнозначно process.arch
.
os.constants
<Объект>
Возвращает объект, содержащий общеиспользуемые константы операционнной системы для кодировки ошибок, сигналов процессов и тому подобное. Заданные константы описываются в константах ОС
.
os.cpus()
Добавлено в v0.3.3- Возвращает
<Массив>
Метод os.cpus()
возвращает массив объектов, которые содержат информацию про каждый установленное ядро/CPU
.
Свойства каждого объекта включают в себя:
model <Строка>
speed <число>
(в МГц)times <объект>
user <число>
Число миллисекунд, которыеCPU
провел в пользовательском режимеnice <число>
Число миллисекунд, которыеCPU
провел вnice
режиме.sys <число>
Число миллисекунд, которыеCPU
провел вsys
режиме.Idle <число>
Число миллисекунд, которыеCPU
провел вidle
режиме.Irq <число>
Число миллисекунд, которыеCPU
провел вirq
режиме.
Пример:
[ { model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', speed: 2926, times: { user: 252020, nice: 0, sys: 30340, idle: 1070356870, irq: 0 } }, { model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', speed: 2926, times: { user: 306960, nice: 0, sys: 26980, idle: 1071569080, irq: 0 } }, { model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', speed: 2926, times: { user: 248450, nice: 0, sys: 21750, idle: 1070919370, irq: 0 } }, { model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', speed: 2926, times: { user: 256880, nice: 0, sys: 19430, idle: 1070905480, irq: 20 } }, { model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', speed: 2926, times: { user: 511580, nice: 20, sys: 40900, idle: 1070842510, irq: 0 } }, { model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', speed: 2926, times: { user: 291660, nice: 0, sys: 34360, idle: 1070888000, irq: 10 } }, { model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', speed: 2926, times: { user: 308260, nice: 0, sys: 55410, idle: 1071129970, irq: 880 } }, { model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', speed: 2926, times: { user: 266450, nice: 1480, sys: 34920, idle: 1072572010, irq: 30 } } ]
Примечание: так как значения nice
являются заданными для UNIX, на Windows значения nice
для всех процессоров всегда равняются 0
.
os.endianness()
Добавлено в v0.9.4- Возвращает:
<строка>
Метод os.endianness()
возвращает строку, определяющую порядок байт CPU
для которого скомпилирован бинарный Node.js.
Возможные значения:
‘BE’
для большого эндиана‘LE’
для малого эндиана
os.freemem()
Добавлено в v0.3.3- Возвращает:
<Integer>
Метод os.freemem()
возвращает количество свободной системной памяти в байтах в виде целого числа.
os.homedir()
Добавлено в v2.3.0- Возвращает:
<строка>
Метод os.homedir()
возвращает домашнюю директорию для текущего пользователя в виде строки.
os.hostname()
Добавлено в v0.3.3- Возвращает:
<строка>
Метод os.hostname()
возвращает имя хоста операционной системы в в виде строки.
os.loadavg()
Добавлено в v0.3.3- Возвращает:
<массив>
Метод os.loadavg()
возвращает массив, содержащий средние значения нагрузки за 1
, и 15
минут.
Средняя нагрузка – это мера активности системы, вычисленная операционной системой и выраженная в виде дробного числа. Следуя правилу большого пальца, средняя нагрузка в идеале должна быть меньше, чем число логических CPU
в системе.
Средняя нагрузка является исключительно UNIX-овым концептом и не имеет реальных аналогов на Windows. На Windows данный метод всегда будет возвращать значения [0, 0, 0]
.
os.networkInterfaces()
Добавлено в v0.6.0- Возвращает:
<объект>
Метод os.networkInterfaces()
возвращает объект, содержащий только сетевые интерфейсы, которые были назначены на адрес сети.
Каждый ключ возвращаемого объекта указывает на сетевой интерфейс. Соответствующее ему значение является массивом объектов, каждый из которых описывает назначенный адрес сети.
Свойства, доступные для назначенного объекта адреса сети, включают:
address <Строка>
Назначенный адресIPv4
илиIPv6
netmask <Строка>
Сетевая маскаIPv4
илиIPv6
family <Строка>
IPv4
илиIPv6
mac <Строка>
MAC
-адрес сетевого интерфейсаinternal <boolean> true
, если сетевой интерфейс является замкнутым либо недоступным удаленно, во всех прочих случаяхfalse
- scopeid
<число>
ID
окружения дляIPv6
(задается только еслиfamily
имеет значениеIPv6
)
{ lo: [ { address: '127.0.0.1', netmask: '255.0.0.0', family: 'IPv4', mac: '00:00:00:00:00:00', internal: true }, { address: '::1', netmask: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', family: 'IPv6', mac: '00:00:00:00:00:00', internal: true } ], eth0: [ { address: '192.168.1.108', netmask: '255.255.255.0', family: 'IPv4', mac: '01:02:03:0a:0b:0c', internal: false }, { address: 'fe80::a00:27ff:fe4e:66a1', netmask: 'ffff:ffff:ffff:ffff::', family: 'IPv6', mac: '01:02:03:0a:0b:0c', internal: false } ] }
os.platform()
Добавлено в v0.5.0- Возвращает:
<Строка>
Метод os.plaform()
возвращает строку, показывающущю, какая платформа ОС
была установлена во время компиляции Node.js.
Возможные значения:
'aix'
'darwin'
'freebsd'
'linux'
'openbsd'
'sunos'
'win32'
Является эквивалентом process.platform
.
Примечание: значение ‘android’
тоже может возвращаться, если Node.js билдится на операционной системе Android. Однако, поддержка Node.js на Android пока что экспериментальна.
os.release()
Добавлено в v0.3.3- Возвращает:
<Строка>
Метод os.release()
возвращает строку, показывающую релиз операционной системы.
Примечание: на системах POSIX релиз ОС
определяется вызовом uname(3)
. На Windows используют GetVersionExW()
.
os.tmpdir()
Добавлено в v0.9.9- Возвращает:
<Строка>
Метод os.tmpdir()
возвращает строку, задающую операционную директорию по умолчанию для хранения временных файлов.
os.totalmem()
Добавлено в v0.3.3- Возвращает:
<Integer>
Метод os.totalmem()
возвращает все количество системной памяти в байтах в виде целого числа.
os.type()
Добавлено в v0.3.3- Возвращает:
<Строка>
Метод os.type()
возвращает строку, показывающую имя операционной системы, возвращенное uname(3)
. Например, ‘Linux’
на Linux, ‘Darwin’
на OS X и ‘Windows_NT’
на Windows.
Больше информации про запуск uname
на разных операционных системах на https://en.wikipedia.org/wiki/Uname#Examples
os.uptime()
Добавлено в v0.3.3- Возвращает:
<Integer>
Метод os.uptime()
возвращает время безотказной работы системы в секундах.
Примечание: по меркам целых значений Node.js, данное число представлено как double
. Однако, дробные секунды не могут быть возвращены и данное значение обычно принимается как целое.
os.userInfo([options])
Добавлено в v6.0.0options <Объект>
encoding <Строка>
Кодировка символов, используемая для интерпретации получаемых строк. Еслиencoding
устанавливается на‘buffer’
, значенияusername
,shell
, иhomedir
будут экземплярамиBuffer
. (по умолчанию‘utf8’
)
- Возвращает:
<Объект>
Метод os.userInfo()
возвращает информацию о текущем пользователе – на платформах POSIX это обычно входит в настройки файла пароля. Возвращенный объект включает в себя username
, uid
, gid
, shell
, и homedir
. На Windows поля uid
и gid
имеют значение -1
и shell
имеет значение null
.
Значение homedir
, возвращаемое через os.userInfo()
предоставляется операционной системой. Эти отличается от результата работы os.homedir()
, который запрашивает некоторые переменные окружения для домашней директории прежде, чем получить ответ от системы.
Константы ОС
Нижеприведенные константы экспортируются из os.constants
.
Примечание: не на каждой операционной системе доступны все константы.
Константы сигналов
Эти константы сигналов экспортируются из os.constants.signals
:
Константа | Описание |
---|---|
SIGHUP | Посылается для индикации закрытия управляющего терминала или существования родительского процесса |
SIGINT | Посылается для индикации, когда пользователь хочет прервать процесс ((Ctrl+C) ) |
SIGQUIT | Посылается для индикации, когда пользователь хочет завершить процесс и выполнить сброс ядра. |
SIGILL | Отправляется в процесс для уведомления о попытках выполнения недопустимой, некорректной, неизвестной или привелигированной инструкции. |
SIGTRAP | Отправляется в процесс, когда происходит иключение. |
SIGABRT | Отправляется в процесс для запроса о прерывании. |
SIGIOT | Синоним SIGABRT |
SIGBUS | Отправляется в процесс для предупреждения об ошибке шины. |
SIGFPE | Отправляется в процесс для предупреждения о выполнении недопустимой арифметической операции. |
SIGKILL | Отправляется в процесс для его немедленного завершения. |
SIGUSR1 SIGUSR2 | Отправляется в процесс для определения заданных пользователем условий. |
SIGSEGV | Отправляется в процесс для уведомления об ошибке сегментации. |
SIGPIPE | Отправляется в процесс при попытке записи в отключенный пайп. |
SIGALRM | Отправляется в процесс, когда истекает системный таймер. |
SIGTERM | Отправляется в процесс для запроса о завершении. |
SIGCHLD | Отправляется в процесс, когда завершается дочерний процесс. |
SIGSTKFLT | Отправляется в процесс для индикации ошибки стека на сопроцессоре. |
SIGCONT | Отправляется с инструкциями операционной системе для продолжения приостановленного процесса. |
SIGSTOP | Отправляется с инструкциями операционной системе для остановки процесса. |
SIGTSTP | Отправляется в процесс с запросом на остановку. |
SIGBREAK | Отправляется для индикации, когда пользователь хочет прервать процесс. |
SIGTTIN | Отправляется в процесс, когда он читает TTY , находясь в режиме бэкграунда. |
SIGTTOU | Отправляется в процесс, когда он записывает в TTY , находясь в режиме бэкграунда. |
SIGURG | Отправляется в процесс, когда нужно прочитать срочные данные из сокета |
SIGXCPU | Отправляется в процесс, когда он превосходит свой лимит использования CPU . |
SIGXFSZ | Отправляется в процесс, когда он создает больший файл, чем максимально допустимый. |
SIGVTALRM | Отправляется в процесс при истечении виртуального таймера. |
SIGPROF | Отправляется в процесс при истечении системного таймера. |
SIGWINCH | Отправляется в процесс, когда управляющий терминал меняет размер. |
SIGIO | Отправляется в процесс, когда доступен ввод-вывод (I/O ) |
SIGPOLL | Синоним SIGIO |
SIGLOST | Отправляется в процесс, когда теряется блокировщик файла. |
SIGPWR | Отправляется в процесс для уведомления об ошибке включения. |
SIGINFO | Синоним SIGPWR |
SIGSYS | Отправляется в процесс для уведомления о некорректном аргументе. |
SIGUNUSED | Синоним SIGSYS |
Константы ошибок
Следующие константы ошибок экспортируются из os.constants.errno
:
Константы ошибок POSIX
Константа | Описание |
---|---|
E2BIG | Показывает, что список аргументов длиннее, чем ожидалось |
EACCES | Показывает, что операция не получила достаточного разрешения |
EADDRINUSE | Адрес сети уже используется |
EADDRNOTAVAIL | Адрес сети на данный момент недоступен для использования |
EAFNOSUPPORT | Семейство адресов сети не поддерживается |
EAGAIN | На данный момент нет доступных данных, нужно попробовать выполнить операцию позже |
EALREADY | Сокет уже обрабатывает соединение |
EBADF | Файловый дескриптор невалидный |
EBADMSG | Недопустимые данные |
EBUSY | Девайс или источник заняты |
ECANCELED | Операция была отменена |
ECHILD | Дочерний процесс не существует |
ECONNABORTED | Сетевое соединение было прервано |
ECONNREFUSED | Сетевое соединение отклонено |
ECONNRESET | Сетевое соединение сброшено |
EDEADLK | Удалось избежать окончания ресурсов |
EDESTADDRREQ | Требуется адрес назначения |
EDOM | Аргумент находится вне домена функции |
EDQUOT | Превышено выделенное пространство диска |
EEXIST | Файл уже существует |
EFAULT | Недопустимый указатель адреса |
EFBIG | Файл слишком большой |
EHOSTUNREACH | Хост недоступен |
EIDRM | Идентификатор был удален |
EILSEQ | Недопустимая последовательность байтов |
EINPROGRESS | Операция уже выполняется |
EINTR | Вызов функции был прерван |
EINVAL | Получен недопустимый аргумент |
EIO | Ошибка ввода-вывод |
EISCONN | Сокет подключен |
EISDIR | Путь является директорией |
ELOOP | Слишком много уровней символьных ссылок в пути |
EMFILE | Слишком много открытых файлов |
EMLINK | Слишком много ссылок на файл |
EMSGSIZE | Полученное сообщение слишком длинное |
EMULTIHOP | Была попытка многоинтервального подключения |
ENAMETOOLONG | Имя файла слишком длинное |
ENETDOWN | Сеть «упала» |
ENETRESET | Соединение было прервано сетью |
ENETUNREACH | Сеть недоступна |
ENFILE | Слишком много открытых файлов в системе |
ENOBUFS | Нет доступного места для буфера |
ENODATA | Нет доступных сообщений в первой очереди на чтение в стриме |
ENODEV | Нет такого девайса |
ENOENT | Нет такого файла или директории |
ENOEXEC | Формат выполнения ошибочен |
ENOLCK | Нет доступных блокировок |
ENOLINK | Ссылка была разорвана |
ENOMEM | Недостаточно места |
ENOMSG | Нет сообщений заданного типа |
ENOPROTOOPT | Данный протокол недоступен |
ENOSPC | Нет доступного места на девайсе |
ENOSR | Нет доступных ресурсов стрима |
ENOSTR | Данный ресурс не является стримом |
ENOSYS | Функция не была реализована |
ENOTCONN | Сокет не был подключен |
ENOTDIR | Путь не является директорией |
ENOTEMPTY | Директория не является пустой |
ENOTSOCK | Данный элемент не является сокетом |
ENOTSUP | Данная операция не поддерживается |
ENOTTY | Некорректные операции для управления вводом-выводом |
ENXIO | Нет такого девайса или адреса |
EOPNOTSUPP | Операция не поддерживается на сокете. Следует помнить, что так как ENOTSUP и EOPNOTSUPP имеют одинаковые значения на Linux, соответственно POSIX.1 значения этих ошибок должны быть разделены. |
EOVERFLOW | Значение слишком большое для хранения в данном типе данных |
EPERM | Операция не разрешена |
EPIPE | Нерабочий пайп |
EPROTO | Ошибка протокола |
EPROTONOSUPPORT | Протокол не поддерживается |
EPROTOTYPE | Неправильный тип протокола для сокета |
ERANGE | Результат слишком большой |
EROFS | Файловая система открыта только для чтения |
ESPIPE | Недопустимая операция поиска |
ESRCH | Нет такого процесса |
ESTALE | Файловый обработчик устарел |
ETIME | Вышло время |
ETIMEDOUT | Время соединения вышло |
ETXTBSY | Текстовый файл занят |
EWOULDBLOCK | Операция будет заблокирована |
EXDEV | Неточная ссылка |
Константы ошибок для Windows
Следующие коды ошибок являются характерными для Windows.
Константа | Описание |
---|---|
WSAEINTR | Указывает на прерванный вызов функции |
WSAEBADF | Указывает на недопустимый файловый обработчик |
WSAEACCES | Нет достаточно прав для выполнения операции |
WSAEFAULT | Недопустимый указатель адреса |
WSAEINVAL | Был передан недопустимый аргумент |
WSAEMFILE | Слишком много открытых файлов |
WSAEWOULDBLOCK | Ресурс временно недоступен |
WSAEINPROGRESS | Операция на данный момент выполняется |
WSAEALREADY | Операция уже выполняется |
WSAENOTSOCK | Ресурс не является сокетом |
WSAEDESTADDRREQ | Требуется адрес назначения |
WSAEMSGSIZE | Размер сообщения слишком большой |
WSAEPROTOTYPE | Неправильный тип протокола для сокета |
WSAENOPROTOOPT | Ошибка протокола |
WSAEPROTONOSUPPORT | Протокол не поддерживается |
WSAESOCKTNOSUPPORT | Тип сокета не поддерживается |
WSAEOPNOTSUPP | Операция не поддерживается |
WSAEPFNOSUPPORT | Семейство протоколов не поддерживается |
WSAEAFNOSUPPORT | Семейство адресов не поддерживается |
WSAEADDRINUSE | Адрес сети недоступен |
WSAENETDOWN | Сеть «упала» |
WSAENETUNREACH | Сеть недоступна |
WSAENETRESET | Сетевое соединение было сброшено |
WSAECONNABORTED | Соединение было прервано |
WSAECONNRESET | Соединение было сброшено пиром |
WSAENOBUFS | Нет свободного места для буфера |
WSAEISCONN | Сокет уже подключен |
WSAENOTCONN | Сокет не подключен |
WSAESHUTDOWN | Данные не могут быть отправлены после закрытия сокета |
WSAETOOMANYREFS | Слишком много ссылок |
WSAETIMEDOUT | Время соединения вышло |
WSAECONNREFUSED | Соединение отклонено |
WSAELOOP | Имя не может быть переведено |
WSAENAMETOOLONG | Имя слишком длинное |
WSAEHOSTDOWN | Сетевой хост «упал» |
WSAEHOSTUNREACH | Нет маршрута к сетевому хосту |
WSAENOTEMPTY | Директория не является пустой |
WSAEPROCLIM | Слишком много процессов |
WSAEUSERS | Пользовательская квота была превышена |
WSAEDQUOT | Дисковая квота была превышена |
WSAESTALE | Ссылка на устаревший файловый обработчик |
WSAEREMOTE | Элемент удален |
WSASYSNOTREADY | Сетевая подсистема не готова |
WSAVERNOTSUPPORTED | Версия winsock.dll недоступна |
WSANOTINITIALISED | Успешный запуск WSAStartup не был выполнен |
WSAEDISCON | Тихое закрытие в процессе |
WSAENOMORE | Нет больше результатов |
WSAECANCELLED | Операция была отменена |
WSAEINVALIDPROCTABLE | Недопустимая таблица процедурный вызовов |
WSAEINVALIDPROVIDER | Недопустимый сервисный провайдер |
WSAEPROVIDERFAILEDINIT | Сервисный провайдер не прошел инициализацию |
WSASYSCALLFAILURE | Ошибка системного вызова |
WSASERVICE_NOT_FOUND | Сервис не был найден |
WSATYPE_NOT_FOUND | Тип класса не найден |
WSA_E_NO_MORE | Нет больше результатов |
WSA_E_CANCELLED | Вызов был отменен |
WSAEREFUSED | Запрос к базе данных был отклонен |
Константы libuv
Константа | Описание |
---|---|
UV_UDP_REUSEADDR |