zoukankan      html  css  js  c++  java
  • 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 .
  • 相关阅读:
    安装 Ruby, Rails 运行环境
    saas 系统租户个性化域名&&租户绑定自己域名的解决方案
    caddy server 几个常用插件
    caddy server && caddyfile
    caddy server 默认https && http2的验证
    caddy server 了解
    redis 连接池的一些问题
    Hangfire 任务调度
    Spring Cloud feign 服务超时处理
    windows 2016 容器管理
  • 原文地址:https://www.cnblogs.com/iyueyao/p/3466268.html
Copyright © 2011-2022 走看看