OS (操作系统)
稳定性: 2 - 稳定的
os
模块提供了一些操作系统相关的实用方法。可以这么引用它:
const os = require('os');
os.EOL
新增于: v0.7.8
- <string>
一个字符串常量,定义操作系统相关的行末标志:
\n
在 POSIX 系统上\r\n
在 Windows系统上
os.arch()
新增于: v0.5.0
- 返回: <string>
os.arch()
方法返回一个字符串, 表明Node.js 二进制编译 所用的 操作系统CPU架构.
现在可能的值有: 'arm'
, 'arm64'
, 'ia32'
, 'mips'
, 'mipsel'
, 'ppc'
, 'ppc64'
, 's390'
, 's390x'
, 'x32'
, 'x64'
, 和 'x86'
.
等价于 process.arch
.
os.constants
新增于: v6.3.0
- <Object>
返回一个包含错误码,处理信号等通用的操作系统特定常量的对象. 现在, 这些特定的常量的定义被描述在OS Constants.
os.cpus()
新增于: v0.3.3
- Returns: <Array>
os.cpus()
方法返回一个对象数组, 包含安装的每个CPU/CPU核的信息.
下面的属性包含在每个对象中:
model
<string>speed
<number> (兆赫兹为单位)times
<Object>user
<number> CPU花费在用户模式下的毫秒时间数.nice
<number> CPU花费在良好模式下的毫秒时间数.sys
<number> CPU花费在系统模式下的毫秒时间数.idle
<number> CPU花费在空闲模式下的毫秒时间数.irq
<number> CPU花费在中断请求模式下的毫秒时间数.
For example:
[
{
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
- Returns: <string>
os.endianness()
方法返回一个字符串,表明Node.js二进制编译环境的字节顺序.
可能的值:
'BE'
大端模式'LE'
小端模式
os.freemem()
新增于: v0.3.3
- Returns: <integer>
os.freemem()
方法以整数的形式回空闲系统内存 的字节数.
os.homedir()
新增于: v2.3.0
- Returns: <string>
os.homedir()
方法以字符串的形式返回当前用户的home目录.
os.hostname()
新增于: v0.3.3
- Returns: <string>
os.hostname()
方法以字符串的形式返回操作系统的主机名.
os.loadavg()
新增于: v0.3.3
- Returns: <Array>
os.loadavg()
方法返回一个数组,包含1, 5, 15分钟平均负载.
平均负载是系统活动的测量,由操作系统计算得出,表达为一个分数. 一般来说,平均负载应该理想地比系统的逻辑CPU的数目要少. 平均负载是UNIX相关的概念,在Windows平台上没有对应的概念. 在Windows上,其返回值总是[0, 0, 0]
.
os.networkInterfaces()
新增于: v0.6.0
- Returns: <Object>
os.networkInterfaces()
方法返回一个对象,包含只有被赋予网络地址的网络接口.
在返回对象的每个关键词都指明了一个网络接口.
返回的值是一个对象数组, 每个都描述了赋予的网络地址.
被赋予网络地址的对象包含的属性:
address
<string> 被赋予的 IPv4 或 IPv6 地址netmask
<string> IPv4 或 IPv6 子网掩码family
<string>IPv4
或IPv6
mac
<string> 网络接口的MAC地址internal
<boolean> 如果 网络接口是loopback或相似的远程不能用的接口时, 值为true
,否则为false
scopeid
<number> 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
- Returns: <string>
os.platform()
方法返回一个字符串, 指定Node.js编译时的操作系统平台
当前可能的值有:
'aix'
'darwin'
'freebsd'
'linux'
'openbsd'
'sunos'
'win32'
等价于 process.platform
.
注意: 如果Node.js 在Android操作系统上构建, 'android'
值 可能被返回. 然而, Android支持Node.js在当前被认为是实验期.
os.release()
新增于: v0.3.3
- Returns: <string>
os.release()
方法返回一个字符串, 指定操作系统的发行版.
注意: 在POSIX系统上, 操作系统发行版是通过 调用uname(3)得到的. 在 Windows系统上, 用GetVersionExW()
. 请查看 https://en.wikipedia.org/wiki/Uname#Examples 获取更多信息.
os.tmpdir()
版本历史
版本 | 变更 |
---|---|
v2.0.0 | This function is now cross-platform consistent and no longer returns a path with a trailing slash on any platform |
v0.9.9 | 新增于: v0.9.9 |
- Returns: <string>
os.tmpdir()
方法返回一个字符串, 表明操作系统的 默认临时文件目录.
os.totalmem()
新增于: v0.3.3
- Returns: <integer>
os.totalmem()
方法以整数的形式返回所有系统内存的字节数.
os.type()
新增于: v0.3.3
- Returns: <string>
os.type()
方法返回一个字符串,表明操作系统的名字, 由uname(3)返回.举个例子, 'Linux'
在 Linux系统上, 'Darwin'
在 macOS 系统上,'Windows_NT'
在 Windows系统上.
请查看https://en.wikipedia.org/wiki/Uname#Examples 获取其他关于在不同 操作系统上执行uname(3),得到输出的信息.
os.uptime()
新增于: v0.3.3
- Returns: <integer>
os.uptime()
方法在几秒内返回操作系统的上线时间.
Note: On Windows the returned value includes fractions of a second. Use Math.floor()
to get whole seconds.
os.userInfo([options])
新增于: v6.0.0
options
<Object>encoding
<string> 用于解释结果字符串的字符编码. 如果encoding
被设置为'buffer'
,username
,shell
, 和homedir
的值将成为Buffer
的实例. (默认是: 'utf8')
- Returns: <Object>
os.userInfo()
方法当前有效用户的信息 -- 在 POSIX平台上, 这通常是password 文件的子集. 返回的对象包括 username
, uid
, gid
, shell
, 和 homedir
. 在Windows系统上, uid
和 gid
域是 -1
, and shell
是 null
.
homedir
的值由os.userInfo()
返回, 由操作系统提供. 这区别了os.homedir()
的结果, 它在求助操作系统响应之前, 为home目录请求几个环境变量.
OS 常量
下面的常量被os.constants
所输出.
注意: 并不是所有的常量在每一个操作系统上都是可用的.
信号常量
版本历史
版本 | 变更 |
---|---|
v5.11.0 | Added support for SIGINFO . |
下面的信号常量由 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 | 发送给一个进程当socket由紧急的数据需要读取时. |
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 | 表明socket有一个即将发生的连接在进行中. |
EBADF | 表明一个文件描述符不可用. |
EBADMSG | 表明一个无效的数据信息. |
EBUSY | 表明一个设备或资源处于忙碌中. |
ECANCELED | 表明一个操作被取消. |
ECHILD | 表明没有子进程. |
ECONNABORTED | 表明网络连接已经被终止. |
ECONNREFUSED | 表明网络连接被拒绝. |
ECONNRESET | 表明网络连接被重置 . |
EDEADLK | 表明一个资源死锁已经被避免 . |
EDESTADDRREQ | 表明需要目的地址 . |
EDOM | 表明参数超过了函数的作用域 . |
EDQUOT | 表明已经超过磁盘指标 . |
EEXIST | 表明文件已经存在 . |
EFAULT | 表明一个无效的指针地址 . |
EFBIG | 表明文件太大 . |
EHOSTUNREACH | 表明主机不可达 . |
EIDRM | 表明识别码已经被移除 . |
EILSEQ | 表明一个非法的字节序 . |
EINPROGRESS | 表明一个操作已经在进行中 . |
EINTR | 表明一个函数调用被中断 . |
EINVAL | 表明提供了一个无效的参数 . |
EIO | 表明一个其他的不确定的 I/O 错误. |
EISCONN | 表明socket已经连接 . |
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 | 表明socket没有连接 . |
ENOTDIR | 表明路径不是目录 . |
ENOTEMPTY | 表明目录是非空的 . |
ENOTSOCK | 表明给定的项目不是socket . |
ENOTSUP | 表明给定的操作不受支持 . |
ENOTTY | 表明一个不适当的 I/O 控制操作. |
ENXIO | 表明没有该设备或地址 . |
EOPNOTSUPP | 表明一个操作不被socket所支持. 注意尽管ENOTSUP 和 EOPNOTSUPP 在Linux上有相同的值时, 根据 POSIX.1 规范,这些错误值应该不同.) |
EOVERFLOW | 表明一个值太大以至于难以用给定的数据类型存储. |
EPERM | 表明操作没有被许可. |
EPIPE | 表明破裂的管道 . |
EPROTO | 表明协议错误 . |
EPROTONOSUPPORT | 表明一个协议不被支持 . |
EPROTOTYPE | 表明socket错误的协议类型 . |
ERANGE | 表明结果太大了 . |
EROFS | 表明该文件系统是只读的 . |
ESPIPE | 表明无效的查询操作 . |
ESRCH | 表明没有这样的进程. |
ESTALE | 表明该文件处理是稳定的 . |
ETIME | 表明一个过期的时钟 . |
ETIMEDOUT | 表明该连接超时 . |
ETXTBSY | 表明一个文本文件处于忙碌 . |
EWOULDBLOCK | 表明该操作被屏蔽 . |
EXDEV | 表明一个不合适的连接 . |
Windows 系统特有的错误常量
下面的错误码与Windows系统相关:
常量 | 描述 |
---|---|
WSAEINTR | 表明中断的函数调用 . |
WSAEBADF | 表明一个无效的文件句柄 . |
WSAEACCES | 表明权限不够完成操作 . |
WSAEFAULT | 表明无效的指针地址 . |
WSAEINVAL | 表明无效的参数被传递 . |
WSAEMFILE | 表明有太多打开的文件 . |
WSAEWOULDBLOCK | 表明资源暂时不可用 . |
WSAEINPROGRESS | 表明操作当前正在进行中 . |
WSAEALREADY | 表明操作已经在进行中 . |
WSAENOTSOCK | 表明资源不是 socket. |
WSAEDESTADDRREQ | 表明需要目的地址 . |
WSAEMSGSIZE | 表明消息太长 . |
WSAEPROTOTYPE | 表明socket协议类型错误 . |
WSAENOPROTOOPT | 表明错误的协议选项 . |
WSAEPROTONOSUPPORT | 表明协议不被支持 . |
WSAESOCKTNOSUPPORT | 表明socket类型不被支持 . |
WSAEOPNOTSUPP | 表明操作不被支持 . |
WSAEPFNOSUPPORT | 表明协议簇不被支持 . |
WSAEAFNOSUPPORT | 表明地址簇不被支持 . |
WSAEADDRINUSE | 表明网络地址已经在使用 . |
WSAEADDRNOTAVAIL | 表明网络地址不可用. |
WSAENETDOWN | 表明网络关闭 . |
WSAENETUNREACH | 表明网络不可达 . |
WSAENETRESET | 表明网络连接被重置 . |
WSAECONNABORTED | 表明连接被终止 . |
WSAECONNRESET | 表明连接被同伴重置 . |
WSAENOBUFS | 表明没有可用的缓存空间 . |
WSAEISCONN | 表明socket已经连接 . |
WSAENOTCONN | 表明socket没有连接 . |
WSAESHUTDOWN | 表明数据在socket关闭之后,不能被发送 . |
WSAETOOMANYREFS | 表明有太多的引用 . |
WSAETIMEDOUT | 表明连接超时 . |
WSAECONNREFUSED | 表明连接被拒绝 . |
WSAELOOP | 表明名字不能被翻译 . |
WSAENAMETOOLONG | 表明名字太长 . |
WSAEHOSTDOWN | 表明网络主机关闭 . |
WSAEHOSTUNREACH | 表明没有到网络主机的路由 . |
WSAENOTEMPTY | 表明目录非空 . |
WSAEPROCLIM | 表明有太多的进程 . |
WSAEUSERS | 表明已经超过用户指标 . |
WSAEDQUOT | 表明已经超过磁盘指标 . |
WSAESTALE | 表明一个稳定的文件句柄引用 . |
WSAEREMOTE | 表明项目是远程的 . |
WSASYSNOTREADY | 表明网络子系统尚未准备好 . |
WSAVERNOTSUPPORTED | 表明 winsock.dll 版本在范围之外. |
WSANOTINITIALISED | 表明成功的 WSAStartup(Windows异步socket)还没有被执行 . |
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 |