zoukankan      html  css  js  c++  java
  • 进程管理

    七天学会NodeJS

    var child_process = require('child_process');
    var util = require('util');
    
    /*
     * util.format(format, [...])
     * 根据第一个参数,返回一个格式化字符串,类似printf的格式化输出
     * 第一个参数是一个字符串,包含零个或多个占位符。 每一个占位符被替换为与其对应的转换后的值。 支持的占位符有:
     * %s - 字符串.
     * %d - 数字 (整型和浮点型).
     * %j - JSON. 如果这个参数包含循环对象的引用,将会被替换成字符串 '[Circular]'。
     * %% - 单独一个百分号('%')。不会消耗一个参数。
     *
     *
     * Process
     * 在NodeJS中,可以通过process对象感知和控制NodeJS自身进程的方方面面。另外需要注意的是,process不是内置模块,而是一个全局对象,因此在任何地方都可以直接使用
     * Child Process
     * 使用child_process模块可以创建和控制子进程。该模块提供的API中最核心的是.spawn,其余API都是针对特定使用场景对它的进一步封装,算是一种语法糖
     * Cluster
     * cluster模块是对child_process模块的进一步封装,专用于解决单进程NodeJS Web服务器无法充分利用多核CPU的问题。使用该模块可以简化多进程服务器程序的开发,让每个核上运行一个工作进程,并统一通过主进程监听端口和分发请求
     */
    function copy(source, target, callback) {
        child_process.exec(
            util.format('cp -r %s/* %s', source, target), callback);
    }
    
    copy('a', 'b', function (err) {
        console.log('jiji')
        // ...
    });
    
    // 如果退出程序
    /*
     * 通常一个程序做完所有事情后就正常退出了,这时程序的退出状态码为0。或者一个程序运行时发生了异常后就挂了,这时程序的退出状态码不等于0。如果我们在代码中捕获了某个异常,但是觉得程序不应该继续运行下去,需要立即退出,并且需要把退出状态码设置为指定数字,比如1
     */
    try {
        //a
    } catch(err) {
        process.exit(1)
    }
    
    // 如果获取命令行参数
    function main(argv) {
        console.log(argv)
    }
    console.log(process.argv)
    main(process.argv.slice(2))
  • 相关阅读:
    Alfred上可提高工作效率的Workflow推荐
    局部性原理——各类优化的基石
    持续学习——程序猿的军备竞赛
    http://regex.alf.nu/ 非标准答案
    13总结
    Ubuntu下python安装mysqldb(驱动)
    北大ACM试题分类+部分解题报告链接
    poj 3253 Fence Repair(优先队列+huffman树)
    Centos/Fedora下安装Twisted,failed with error code 1 in /tmp/pip-build-H1bj8E/twisted/解决方法
    关于command 'gcc' failed with exit status 1 解决方法
  • 原文地址:https://www.cnblogs.com/jzm17173/p/4975395.html
Copyright © 2011-2022 走看看