Process Node.js 进程

Process 进程

  • process.argv 是命令行参数数组,第一个元素是node,第二个元素是脚本文件名,从第三个元素开始每个元素是一个运行参数。
  • process.stdout 标准输出流 console.log的定义。
      console.log = function (d) {
          process.stdout.write(d + '
    ');
      };

通常我们使用的console.log()向标准输出打印字符,而process.stdout.write()函数提供了更底层的接口

  • process.stdin 是标准输入流,初始时它是被暂停的,要想从标准输入读取数据,你必须恢复流,并手动编写流的事件响应函数。
  • process.nextTick(callback) 异步执行callback函数 为事件循环设置一项任务,Node.js 会在下次事件循环调响应时调用callback。
  • process.chdir 改变进程的工作目录
  • process.cwd 返回当前进程的工作目录
  • process.env 返回当前linux系统的信息
  • process.exit(code=0) kill当前进程,退出本进程 n=0表示正确退出,1表示异常退出
  • process.getgid()、process.setgid(id) 获取和设置进程的groupid
  • process.getuid()、process.setuid(id) 获取和设置进程的userid
  • process.version、process.versions node.js的版本和node.js的版本对象
  • process.pid、process.title、process.arch、process.platform 进程id,进程名字,进程架构(如:X64),进程平台(如:linux)
  • process.memoryUsage() 进程的内存使用情况

进程事件:

//退出
process.on('exit',function(){
    console.log('EXIT');
});

//未处理得异常
process.on('uncaughtException',function(err){
     console.error(err.stack)
});

  

接收SIGINT(Ctrl+C 退出)信号:

//在接收到信号以后 可以做一系列的操作 比如关闭链接,写日志等等。
process.stdin.resume();

process.on('SIGINT',function(){
    console.log('Go to Sigint exiting');
    process.exit(0);
})

  

接收SIGTERM(kill命令)信号:

process.on('SIGTERM',function(){
    console.log('Go a SIGTERM, exiting');
    process.exit(0);
})

  

shebang 调用脚本

在你的js第一行写入下面#!/usr/bin/env node 将该文件设置为可执行(给权限)sudo chmod +x app.js 然后在写代码:

   console.log('TEST');

通过以上步骤以后 你就可以在系统中 调用该文件 ./app.js 无需node 命令

示例(利用命令生成js):

#!/usr/bin/env node

var fs = require('fs');

var argv = process.argv;
console.log(argv);

fs.writeFile(argv[2]+'.js',"'use strict';",function(err){
    if(err) throw err;
    console.log('has finished');
});

  

Now or nerver .
原文地址:https://www.cnblogs.com/iyueyao/p/3466268.html