简介

process是一个全局内置对象,可以在代码中的任何位置访问此对象,这个对象代表我们的node.js代码宿主的操作系统进程对象。

使用process对象可以截获进程的异常、退出等事件,也可以获取进程的当前目录、环境变量、内存占用等信息,还可以执行进程退出、工作目录切换等操作。

1.cwd函数的基本用法

当我们想要查看应用程序当前目录时,可以使用cwd函数,使用语法如下:

  1. process.cwd();

2.chdir函数的基本用法

如果需要改变应用程序目录,就要使用chdir函数了,它的用法如下:

  1. process.chdir("目录");

3.stdout的基本用法

stdout是标准输出流,它是干什么的呢?请下看下面的示例:

  1. console.log = function(d){
  2. process.stdout.write(d+'\n');
  3. }

没错,它的作用就是将内容打印到输出设备上,console.log就是封装了它。

4.stderr的基本用法

stderr是标准错误流,和stdout的作用差不多,不同的是它是用来打印错误信息的,我们可以通过它来捕获错误信息,基本使用方法如下:

  1. process.stderr.write(输入内容);

5.stdin的基本用法

stdin是进程的输入流,我们可以通过注册事件的方式来获取输入的内容,如下:

  1. process.stdin.on('readable', function() {
  2. var chunk = process.stdin.read();
  3. if (chunk !== null) {
  4. process.stdout.write('data: ' + chunk);
  5. }
  6. });

示例中的chunk就是输入流中的内容。

6.exit函数的基本用法

如果你需要在程序内杀死进程,退出程序,可以使用exit函数,示例如下:

  1. process.exit(code);

参数code为退出后返回的代码,如果省略则默认返回0;

7.注册事件

前面讲到如何在输入流中打印信息,当我们需要获取stdout内容的时候应该怎么做呢?请看如下的示例:

  1. process.stdout.on('data',function(data){
  2. console.log(data);
  3. });

为stdout注册data事件,我们就可以拿到它输出的内容了。

8.设置编码

在我们的输入输出的内容中有中文的时候,可能会乱码的问题,这是因为编码不同造成的,所以在这种情况下需要为流设置编码,如下示例:

  1. process.stdin.setEncoding(编码);
  2. process.stdout.setEncoding(编码);
  3. process.stderr.setEncoding(编码);

nade.js(一)进程管理的更多相关文章

  1. Node.js的进程管理

    众所周知Node基于V8,而在V8中JavaScript是单线程运行的,这里的单线程不是指Node启动的时候就只有一个线程,而是说运行JavaScript代码是在单线程上,Node还有其他线程,比如进 ...

  2. 关于node.js的进程管理

    如果是单纯的运行一个node进程,那会比较简单,例如: node ./example.js 但是一般来说,当我们运行一个node进程之后,我们可能希望对这个进程进行更多的管理,例如,当node程序是一 ...

  3. node.js整理 05进程管理

    简介 NodeJS可以感知和控制自身进程的运行环境和状态,也可以创建子进程并与其协同工作,这使得NodeJS可以把多个程序组合在一起共同完成某项工作,并在其中充当胶水和调度器的作用 常用API Pro ...

  4. 【nodejs学习】3.进程管理及异步编程

    进程管理 1.调用终端命令实现目录目录拷贝 var child_procress = require('child_procress'); var util = require('util'); fu ...

  5. Node的安装和进程管理

    安装nvm git clone https://github.com/creationix/nvm.git source nvm/nvm.sh 安装node nvm install 6.14.4(版本 ...

  6. 服务器端配置nodejs环境(使用pm2进程管理运行)

    一.brew安装: 由于Mac没有装ubantu,所以不能用apt-get命令,在本地命令行下Mac安装homebrew替代:  https://brew.sh 二.新开命令窗口,登录root用户,安 ...

  7. PHP FastCGI进程管理器PHP-FPM的架构

    一个master进程,支持多个pool,每个pool由master进程监听不同的端口,pool中有多个worker进程.每个worker进程都内置PHP解释器,并且进程常驻后台,支持prefork动态 ...

  8. nodeJS进程管理器pm2

    pm2是一个带有负载均衡功能的Node应用的进程管理器.当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的. PM2是开源的基于Nodejs的进程管 ...

  9. electron教程(二): http服务器, ws服务器, 进程管理

    我的electron教程系列 electron教程(一): electron的安装和项目的创建 electron教程(二): http服务器, ws服务器, 进程管理 electron教程(三): 使 ...

随机推荐

  1. Google map v3 using simple tool file google.map.util.js v 1.1

    /** * GOOGLE地图开发使用工具 * @author BOONYACHENGDU@GMAIL.COM * @date 2013-08-23 * @notice 地图容器的z-index不能小于 ...

  2. Windows查看电脑上安装的.Net Framework版本的五种方法(转)

    1.查看安装文件判断Framwork版本号 打开资源管理器,比如我的电脑,再地址栏输入%systemroot%\Microsoft.NET\Framework后单击“转到”或者按回车. 在新文件夹中查 ...

  3. iOS使用ffmpeg播放rstp实时监控视频数据流

    一.编译针对iOS平台的ffmpeg库(kxmovie) 最近有一个项目.须要播放各种格式的音频.视频以及网络摄像头实时监控的视频流数据,经过多种折腾之后,最后选择了kxmovie,kxmovie项目 ...

  4. RHEL5.8安装Oracle11g

    1.安装环境[root@rusky-oracle11g ~]# uname -r2.6.18-308.el5[root@rusky-oracle11g ~]# cat /etc/issueRed Ha ...

  5. cassandra命令

    压力测试:cassandra-stress [command] -node [nodes] -mode thrift user=[user] password=[password] example: ...

  6. Android开发环境的搭建之(四)虚拟设备AVD的基本配置

    配置Android系统语言包为中文简体.点击导航栏左数第二个“菜单”图标 选择“System settings”. 选择“Language & Input” 选择“Language” 选择“中 ...

  7. Ark组件设计随想(一)

    Ark组件是L.Skyler自工作以来不断积累和优化的快速开发胶水架. Ark的目标是帮助开发人员简单快速的开始一个新的项目并且尽可能的复用已有功能.让项目开发不受一些基础组件开发影响. Ark定义了 ...

  8. 【noip2012提高组】国王游戏

    恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右 手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排 成一排,国王站在队伍的最前面. ...

  9. highcharts:根据Y的数值范围,动态改变图形的填充颜色

    图形实例: 源代码如下:   <!DOCTYPE html><html><head><meta charset="utf-8">&l ...

  10. phpcms在自定义模块中的自定义标签分页

    如果你是一个经验丰富的phpcms二次开发人员,本篇文章可以忽略不计,因为这里的写法自己都觉得很恶心        今天在开发一个网站自建了一个模块叫做论坛模块,目录名称:luntan        ...