返回顶部
首页 > 资讯 > 精选 >Node.js的Process模块如何使用
  • 685
分享到

Node.js的Process模块如何使用

2023-07-02 15:07:21 685人浏览 安东尼
摘要

这篇文章主要介绍了node.js的Process模块如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇node.js的Process模块如何使用文章都会有所收获,下面我们一起来看看吧。一、Process模块

这篇文章主要介绍了node.js的Process模块如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇node.js的Process模块如何使用文章都会有所收获,下面我们一起来看看吧。

一、Process模块

Process模块是一个无须使用require()就可以从node.js应用程序进行访问的全局对象。

二、进程I/O管道

Process为进程stdin、stdout、stderr提供了对标准I/O管道的访问。(有点了类似c++的输入输出的赶脚)

stdin输入,stdout、stderr可以实现输出

process.stdin.on('data',function(data){    process.stdout.write(data.toString());    process.stderr.write(data.toString());});

输出结果:

"C:\Program Files (x86)\JetBrains\WEBStORM 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe Process.jsssssssssssss

三、进程的信号

说起信号让我想起了信号量,虽然它们不是一回事,刚才也百度了下,算是复习重温一下。

由于信号量只能进行两种操作等待和发送信号,即P(sv)和V(sv),他们的行为是这样的:

由于信号量只能进行两种操作等待和发送信号,即P(sv)和V(sv),他们的行为是这样的:

P(sv):如果sv的值大于零,就给它减1;如果它的值为零,就挂起该进程的执行

V(sv):如果有其他进程因等待sv而被挂起,就让它恢复运行,如果没有进程因等待sv而挂起,就给它加1.

两个进程共享信号量sv,一旦其中一个进程执行了P(sv)操作,它将得到信号量,并可以进入临界区,使sv减1。而第二个进程将被阻止进入临界区,因为当它试图执行P(sv)时,sv为0,它会被挂起以等待第一个进程离开临界区域并执行V(sv)释放信号量,这时第二个进程就可以恢复执行。

Node.js允许注册监听器来处理操作系统发送给一个进程的信号。可以被发送的node.js进程的事件有下面几个:

SIGUSR1 :启动调试器时发出。

SIGPIPE:进程试图写入在另一端没有进程连接的管道时发出

SIGHUP:Window上控制台关闭窗口时发出。在发出此事件约10秒会终止Node.js

SIGTERM:在发出一个终止进程的请求时发出.Windwo不支持。

SIGINT:当中断被发送到这个进程上,如Ctrl+C组合键被按下时发出

SIGBEAK:Windwo下Ctrl+Break组合键被按下时发出。

SIGWINCE:在控制台已经被调整大小时发出。Window下,只有当你写入控制台,移动光标或者在原始模式下使用可读的TTY时发出

SIGKILL:进程杀掉时发出

SIGSTOP:进程终止时发出。

监听的其实不止上面的信号在process的on定义中也能看出还有exit、uncaughtException等(可以转到定义)。

四、控制进程执行

abort():使当前的Node.js应用程序发出abort事件,退出,并产生一个内存核心转储文件

exit([code]):使当前Node.js应用退出,并返回指定的code

kill(pid,[signall]):操作系统会向指定的pid的进程发送一个kill信号,默认是SIGTERM

nexttick(callback):调度node.js程序的队列中的callback函数

五、从Process模块获取信息

var util = require('util');//返回进程的当前工作目录console.log('Current directory: ' + process.cwd());//该进程的环境中指定的键/值对console.log('Environment Settings: ' + JSON.stringify(process.env));//用于启动Node.js应用程序的命令参数console.log('Node Args: ' + process.argv);//Node。js从中启动的绝对路径console.log('Execution Path: ' + process.execPath);//用于启动应用程序的特定节点的命令行选项console.log('Execution Args: ' + JSON.stringify(process.execArgv));//Node.js版本号console.log('Node Version: ' + process.version);//提供一个对象,包含Node.js应用程序所需的模块和版本console.log('Module Versions: ' +  JSON.stringify(process.versions));//用于编译当前节点可执行程序的配置选项console.log('Node Config: ' +  JSON.stringify(process.config));//当前进程IDconsole.log('Process ID: ' + process.pid);//当前进程标题console.log('Process Title: ' + process.title);//操作系统console.log('Process Platform: ' + process.platform);//进程正在运行的处理器体系结构console.log('Process Architecture: ' + process.arch);//Node.js进程的当前内存使用情况可使用util.inspect()读取console.log('Memory Usage: ' + util.inspect(process.memoryUsage()));//返回一个高精确的时间var start = process.hrtime();setTimeout(function() {  var delta = process.hrtime(start);  console.log('High-Res timer took %d seconds and %d nanoseconds',               delta[0], + delta[1]);  console.log('Node has been running %d seconds', process.uptime());}, 1000);

输出结果:

"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe process_info.jsCurrent directory: c:\Users\Administrator\Desktop\nodejs-mongodb-angularjs-web-development-master\ch09Environment Settings: {"#envTSLOGTSLOG11328":"100839136","ALLUSERSPROFILE":"C:\\ProgramData","APPDATA":"C:\\Users\\Administrator\\AppData\\Roaming","asl.log":"Destination=file","CommonProgramFiles":"C:\\Program Files\\Common Files","CommonProgramFiles(x86)":"C:\\Program Files (x86)\\Common Files","CommonProgramW6432":"C:\\Program Files\\Common Files","COMPUTERNAME":"LENOVO-PC","ComSpec":"C:\\windows\\system32\\cmd.exe","configsetroot":"C:\\WINDOWS\\ConfigSetRoot","FPS_BROWSER_APP_PROFILE_STRING":"Internet Explorer","FPS_BROWSER_USER_PROFILE_STRING":"Default","FP_NO_HOST_CHECK":"NO","HOMEDRIVE":"C:","HOMEPATH":"\\Users\\Administrator","LOCALAPPDATA":"C:\\Users\\Administrator\\AppData\\Local","LOGoNSERVER":"\\\\MicrosoftAccount","NUMBER_OF_PROCESSORS":"4","OS":"Windows_NT","Path":"C:\\PROGRAM FILES (X86)\\INTEL\\ICLS CLIENT\\;C:\\PROGRAM FILES\\INTEL\\ICLS CLIENT\\;C:\\WINDOWS\\SYSTEM32;C:\\WINDOWS;C:\\WINDOWS\\SYSTEM32\\WBEM;C:\\WINDOWS\\SYSTEM32\\WINDOWSPOWERshell\\V1.0\\;C:\\PROGRAM FILES\\INTEL\\INTEL(R) MANAGEMENT ENGINE COMPONENTS\\DAL;C:\\PROGRAM FILES\\INTEL\\INTEL(R) MANAGEMENT ENGINE COMPONENTS\\IPT;C:\\PROGRAM FILES (X86)\\INTEL\\INTEL(R) MANAGEMENT ENGINE COMPONENTS\\DAL;C:\\PROGRAM FILES (X86)\\INTEL\\INTEL(R) MANAGEMENT ENGINE COMPONENTS\\IPT;C:\\PROGRAM FILES (X86)\\ATI TECHNOLOGIES\\ATI.ACE\\CORE-STATIC;;C:\\WINDOWS\\SYSTEM32;C:\\WINDOWS;C:\\WINDOWS\\SYSTEM32\\WBEM;C:\\WINDOWS\\SYSTEM32\\WINDOWSPOWERSHELL\\V1.0\\;C:\\PROGRAM FILES (X86)\\AMD\\ATI.ACE\\CORE-STATIC;C:\\Program Files\\Lenovo\\Bluetooth Software\\;C:\\Program Files\\Lenovo\\Bluetooth Software\\syswow64;F:\\nodejs\\;C:\\WINDOWS\\system32\\config\\systemprofile\\.dnx\\bin;C:\\Program Files\\Microsoft DNX\\Dnvm\\;C:\\Program Files (x86)\\Lenovo\\Lenovo Home\\DCMainWin.exe;C:\\Users\\Administrator\\AppData\\Roaming\\npm","PATHEXT":".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC","PROCESSOR_ARCHITECTURE":"AMD64","PROCESSOR_IDENTIFIER":"Intel64 Family 6 Model 60 Stepping 3, GenuineIntel","PROCESSOR_LEVEL":"6","PROCESSOR_REVISION":"3c03","ProgramData":"C:\\ProgramData","ProgramFiles":"C:\\Program Files","ProgramFiles(x86)":"C:\\Program Files (x86)","ProgramW6432":"C:\\Program Files","PSModulePath":"C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\Modules\\","PUBLIC":"C:\\Users\\Public","SESSIONNAME":"Console","SystemDrive":"C:","SystemRoot":"C:\\WINDOWS","TEMP":"C:\\Users\\ADMINI~1\\AppData\\Local\\Temp","TMP":"C:\\Users\\ADMINI~1\\AppData\\Local\\Temp","USERDOMAIN":"LENOVO-PC","USERDOMAIN_ROAMINGPROFILE":"LENOVO-PC","USERNAME":"Administrator","USERPROFILE":"C:\\Users\\Administrator","VS140COMNTOOLS":"C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\Common7\\Tools\\","windir":"C:\\WINDOWS"}Node Args: F:\nodejs\node.exe,c:\Users\Administrator\Desktop\nodejs-mongoDB-angularjs-web-development-master\ch09\process_info.jsExecution Path: F:\nodejs\node.exeExecution Args: []Node Version: v4.3.2Module Versions: {"Http_parser":"2.5.2","node":"4.3.2","v8":"4.5.103.35","uv":"1.8.0","zlib":"1.2.8","ares":"1.10.1-DEV","icu":"56.1","modules":"46","openssl":"1.0.2g"}Node Config: {"target_defaults":{"cflags":[],"default_configuration":"Release","defines":[],"include_dirs":[],"libraries":[]},"variables":{"asan":0,"host_arch":"x64","icu_data_file":"icudt56l.dat","icu_data_in":"../../deps/icu/source/data/in\\icudt56l.dat","icu_endianness":"l","icu_gyp_path":"tools/icu/icu-generic.gyp","icu_locales":"en,root","icu_path":"deps\\icu","icu_small":true,"icu_ver_major":"56","node_byteorder":"little","node_install_npm":true,"node_prefix":"/usr/local","node_release_urlbase":"","node_shared_http_parser":false,"node_shared_libuv":false,"node_shared_openssl":false,"node_shared_zlib":false,"node_tag":"","node_use_dtrace":false,"node_use_etw":true,"node_use_lttng":false,"node_use_openssl":true,"node_use_perfctr":true,"openssl_fips":"","openssl_no_asm":0,"python":"C:\\Python27\\python.exe","target_arch":"x64","v8_enable_gdbjit":0,"v8_enable_i18n_support":1,"v8_no_strict_aliasing":1,"v8_optimized_debug":0,"v8_random_seed":0,"v8_use_snapshot":true,"want_separate_host_toolset":0}}Process ID: 8124Process Title: C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exeProcess Platform: win32Process Architecture: x64Memory Usage: { rss: 17641472, heapTotal: 7409232, heapUsed: 3756584 }High-Res timer took 1 seconds and 107153 nanosecondsNode has been running 1.128 secondsProcess finished with exit code 0

关于“Node.js的Process模块如何使用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Node.js的Process模块如何使用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: Node.js的Process模块如何使用

本文链接: https://lsjlt.com/news/342830.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Node.js的Process模块如何使用
    这篇文章主要介绍了Node.js的Process模块如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Node.js的Process模块如何使用文章都会有所收获,下面我们一起来看看吧。一、Process模块...
    99+
    2023-07-02
  • Node.js模块Modules如何使用
    本篇内容介绍了“Node.js模块Modules如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!模块模块就是一个声明了装饰器@Modu...
    99+
    2023-07-06
  • Node.js中如何使用DNS模块
    Node.js中如何使用DNS模块,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1. DNS在Node.js中,提供DNS模块,以实现域名...
    99+
    2024-04-02
  • Node.js 中domain模块如何使用
    这篇文章给大家介绍Node.js 中domain模块如何使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。异步异常处理异步异常的特点由于node的回调异步特性,无法通过try catc...
    99+
    2024-04-02
  • Node.js中如何使用Cluster模块
    Node.js中如何使用Cluster模块,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.为什么我的应用代码中明明有app....
    99+
    2024-04-02
  • Node.js中如何使用util模块
    本篇文章为大家展示了Node.js中如何使用util模块,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。util.inheritsuitl.inherits(cons...
    99+
    2024-04-02
  • Node.js中stream模块如何使用
    Node.js中stream模块如何使用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。什么是stream定义流的英文strea...
    99+
    2024-04-02
  • node.js中如何使用url模块
    本篇文章为大家展示了node.js中如何使用url模块,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。引入模块var url = req...
    99+
    2024-04-02
  • Node.js中fs模块如何使用
    这篇文章主要介绍“Node.js中fs模块如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Node.js中fs模块如何使用”文章能帮助大家解决问题。引入fs模块var fs=requ...
    99+
    2023-07-02
  • Node.js中process模块常用的属性和方法
    前言 虽然node对操作系统做了很多抽象的工作,但是你还是可以直接和他交互,比如和系统中已经存在的进程进行交互,创建工作子进程。node是一个用于事件循环的线程,但是你可以在这个事件循环之外创建其他的进程(...
    99+
    2022-06-04
    模块 属性 常用
  • python process模块的使用简介
    目录process模块1、在python中启动一个子进程2、给子进程传递参数3、同时开多个子进程4、join的用法5、多进程之间的数据是否隔离6、为什么在Windows中Process()必须放到if __name_...
    99+
    2022-06-02
    python process模块 python process的使用
  • Node.js中Process、Path和File System模块常用 API
    这篇文章给大家分享的是有关Node.js中Process、Path和File System模块常用 API的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。本篇文章给大家介绍一下Nodejs中Process、Path...
    99+
    2023-06-14
  • Node.js进程管理之Process模块详解
    在前面Node.js事件运行机制也有提到,Node.js应用在单个线程运行,但是现在大部分服务器都是多处理器,为了方便使用多个进程,Node.js提供了3个模块。Process模块提...
    99+
    2024-04-02
  • Node.js 中如何使用fs与Path模块
    Node.js 中如何使用fs与Path模块,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。概述:文件系统模块是一个简单包装的标准 POSIX 文件 I/O 操作方法集。可以...
    99+
    2023-06-20
  • python process模块怎么用
    今天小编给大家分享一下python process模块怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。process可以...
    99+
    2023-06-27
  • Node.js的Buffer模块怎么使用
    这篇文章主要介绍“Node.js的Buffer模块怎么使用”,在日常操作中,相信很多人在Node.js的Buffer模块怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • Node.js的Events模块怎么使用
    本篇内容主要讲解“Node.js的Events模块怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node.js的Events模块怎么使用”吧!Event...
    99+
    2024-04-02
  • 如何使用C/C++编写node.js原生模块
    这篇文章主要为大家展示了“如何使用C/C++编写node.js原生模块”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用C/C++编写node.js原生模块...
    99+
    2024-04-02
  • Node.js模块与npm包管理器如何使用
    本篇内容主要讲解“Node.js模块与npm包管理器如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node.js模块与npm包管理器如何使用”吧!require函数作用:在当前模块中加载...
    99+
    2023-06-29
  • Node.js中的VM模块怎么使用
    本篇内容主要讲解“Node.js中的VM模块怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node.js中的VM模块怎么使用”吧!参考文献 vm 虚拟机...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作