process进程模块

process对象是一个全局进程变量,提供 Node.js 进程的有关信息以及控制进程。有电脑系统相关信息,自身版本号,一些存储路径等相关信息。

process是EventEmitter类的实例。就是说,可添加全局自定义事件。

拥有的事件:

                ‘beforExit’事件:当Node清空了事件循环且不再添加额外工作时触发。正常自动无事件可执行自动关闭触发,自己主动调用exit()或者抛出未捕获的异常时不会触发。

                ‘exit’事件,退出进程时触发,触发方法 ,自然关闭,主动调用exit()方法。回调函数里面只允许有同步方法,异步方法不会执行

                ‘disconnect’事件,如果node进程是通过IPC通道衍生的,当IPC通道关闭时触发。

                ‘message’事件,如果node进程是通过IPC通道衍生的,当子进程收到父进程使用childprocess.send()发送的消息时触发。

                                        消息会进行序列化和解析,收到的消息可能与发送的不完全一样。

                ‘multipleResolves’事件,当promise内方法执行2次及以上就触发该事件,主要用于使用 promise 时追踪错误。

                ‘rejectionHandled’事件,异步错误监听,监听promise.ecject错误事件。

                ‘unhandledRejection’事件,同步错误监听

正确使用 'uncaughtException' 事件的方式,是用它在进程结束前执行一些已分配资源(比如文件描述符,句柄等等)的同步清理操作。 触发 'uncaughtException' 事件后,用它来尝试恢复应用正常运行的操作是不安全的。

想让一个已经崩溃的应用正常运行,更可靠的方式应该是启动另外一个进程来监测/探测应用是否出错, 无论 uncaughtException 事件是否被触发,如果监测到应用出错,则恢复或重启应用。

                ‘unhandledRejection’事件,promise错误监听器。

                ‘warning’事件,监听警告事件,接收3个参数,错误名字,错误描述,错误存在的堆栈位置,--no-warning可以关闭告警信息,但还是可以用warning监听到警告信息。

                ‘信号事件’,接收到外部的信号时触发,如信号中断,父进程被杀死,等。

包含的方法和属性:

            abort(),会立即结束进程,并生成一个core文件。

            chdir(directory):变更Node.js进程的当前工作目录。

            cpuUsage():返回一个数组,分别是当前进程用户CPU时间和当前系统CPU时间,单位都是微秒(百万分之一秒)。上一次调用process.cpuUsage()方法的结果,可以作为参数值传递给此方法,得到的结果是与上一次的差值。

            cwd():返回进程的当前工作目录。

            dlopen(),动态加载加载一个c++插件。

            emitWarning(),方法可用于发出定制的或应用特定的进程警告,可以用监听warning事件来接收警告。作为最佳实践,警告应该在每个进程中最多发出一次。

            exit():结束当前进程。

            getegid():返回Node.js进程的有效数字标记的组身份,这个函数只在POSIX平台有效(在Windows或Android平台无效)。geteuid,getgid,getgroups,getuid

            hasUncaughtExceptionCaptureCallback():指示是否使用设置回调

            hrtime([time]):返回的时间,都是相对于过去某一时刻的值,与一天中的时钟时间没有关系,因此不受制于时钟偏差。 此方法最主要的作用是衡量间隔操作的性能.

返回当前时间以[seconds, nanoseconds] tuple Array表示的高精度解析值, nanoseconds是当前时间无法使用秒的精度表示的剩余部分。

            hrtime.bigint():hrtime([time])的整型版本,

            kill(pid[, signal]):它其实只是发送信号。

            memoryUsage():返回node进程的内存使用情况 heapTotal 和 heapUsed 代表V8的内存使用情况。 external代表V8管理的,绑定到Javascript的C++对象的内存使用情况。 rss, 驻留集大小, 是给这个进程分配了多少物理内存(占总分配内存的一部分) 这些物理内存中包含堆,栈,和代码段。对象,字符串,闭包等存于堆内存。 变量存于栈内存。 实际的JavaScript源代码存于代码段内存。

            nextTick(callback[, ...args]):方法将 callback 添加到"next tick 队列"。 一旦当前事件轮询队列的任务全部完成,在next tick队列中的所有callbacks会被依次调用。

这种方式不是setTimeout(fn, 0)的别名。它更加有效率。事件轮询随后的ticks 调用,会在任何I/O事件(包括定时器)之前运行。

            send():用来给父进程发送消息,不存在则是udefined。

            umask([mask]):方法用于返回或设置Node.js进程的默认创建文件的权限掩码。子进程从父进程继承这个掩码。 不传参数时,默认返回当前掩码,如果传递了参数,创建文件掩码就被设置为参数值,并且返回之前的掩码。

            uptime():法返回当前 Node.js 进程运行时间秒长

 

            arch:返回一个CPU架构的字符串,64位或32位

            argv:返回一个数组,第一个表示,当前node文件所在的绝对路径,第二个参数表示当前执行js文件的绝对路径

            argv0:argv[0]的缩写,返回Node所在文件的绝对路径。

            execPath:返回Node所在文件的绝对路径。

            config:返回一个js对象,描述了用于编译当前Node.js执行程序时涉及的配置项信息。

            debugPort:debugger 调试器使用的端口。

            env:返回一个环境信息对象,返回用户的环境信息。可增加自定义环境,比如常见的生产测试环境等。新增属性只接收字符串,不是字符串会自动转换。不区分大小写。

            execArgv:返回当Node.js进程被启动时,Node.js特定的命令行选项,接收特定命令选项参数。

            exitCode:当进程正常结束,或通过process.exit()结束但未传递参数时,此数值标识进程结束的状态码。给process.exit(code)指定一个状态码,会覆盖process.exitCode的原有值。

            mainModule:属性提供了一种获取require.main的替代方式。

            pid:返回进程的PID。

            ppid:返回父进程的PID

            platform:返回当前电脑的操作系统平台。

            release:前发布相关的元数据对象,包括源代码和源代码头文件 tarball的URLs。

            title:返回运行器的名字。

            version:返回node版本号。

            versions:返回一个对象,此对象列出了Node.js和其依赖的版本信息。

            stderr:返回连接到stderr(fd 2)的流。 它是一个net.Socket(它是一个Duplex流),

            stdin:返回连接到 stdin (fd 0) 的流。 如果 fd 0 指向文件,则返回可读流,否则返回 net.Socket(也就是 Duplex 流)。

            stdout:返回连接到 stdout (fd 1) 的流。 如果 fd 1 指向文件,则返回可写流,否则返回 net.Socket(也就是 Duplex 流)。

 

            

            channel:如果该进程是通过IPC通道创建的,则保存IPC channel的引用,如不存在则是undefined  。

            connected:如果Node.js进程是由IPC channel方式创建的,只要IPC channel保持连接就会返回true,被中断链接后返回false。

            disconnect():如果Node.js进程是由IPC channel方式创建的,调用此方法会关闭链接。否则返回undefined

转载于:https://my.oschina.net/u/3971746/blog/3000576

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值