zoukankan      html  css  js  c++  java
  • nodejs 进程总结

     
     

    child_process

    child_process.spawn(command, args,options) 

    支持 stream 方式操作输入输出,适合数据量大的情况;可以执行任何命令;不创建 V8 实例;可以创建常驻的后台进程 

    对于异步命令不支持callback, 可以使用process.on来监听结果

    const spawn = require('child_process').spawn;
    const touch = spawn('touch',['spawn.js']);
    
    touch.stdout.on('data', (data) => {
      console.log(`stdout: ${data}`);
    });
    
    touch.stderr.on('data', (data) => {
      console.log(`stderr: ${data}`);
    });
    
    touch.on('close', (code) => {
      console.log(`child process exited with code ${code}`);
    });
    

      

    child_process.exec(order,cb(err[,stdout,stderr]))

    order: 是执行的命令. 比如: rm spawn.js
    支持命令执行成功后的回调函数。

    使用 Buffer 来存储进程的输出,可以在回调里面获取输出结果,不太适合数据量大的情况;可以执行任何命令;不创建 V8 实例

    const childProcess = require('child_process');
    
    const ls = childProcess.exec('rm spawn.js', function (error, stdout, stderr) {
       if (error) {
         console.log(error.stack);
         console.log('Error code: '+error.code);
       }
       console.log('Child Process STDOUT: '+stdout);
    });
    

    child_process.fork(order)

    spawn 的一个特例(spawn("node",['app.js'])和fork('app.js') 效果相同)。但只能执行 Node 脚本;会创建一个 V8 实例;建立父子进程的 IPC 双工信息通道,两个进程之间使用process.on("message",fn)和process.send(...)进行信息的交流。

    //master.js
    const childProcess = require('child_process');
    const worker = childProcess.fork('worker.js');
    
    worker.on('message',function(mes){
        console.log(`from worder, message: ${mes}`);
    });
    worker.send("this is master");
    

      

    //worker.js
    process.on('message',function(mes){
        console.log(`from master, message: ${mes}`);
    });
    process.send("this is worker");
    

      

      

  • 相关阅读:
    MongoDB入门示例及介绍
    Oracle/PLSQL CURSOR FOR Loop
    JAVA写的文件分割与文件合并程序
    synchronized 解决死锁的问题 轉貼
    采用批处理命令对文件进行解压及采用SQLCMD进行数据库挂载
    chapter6作业
    chapter5作业
    chapter4作业
    Linuz系统管理 -----账号管理
    chapter02
  • 原文地址:https://www.cnblogs.com/breakdown/p/15158862.html
Copyright © 2011-2022 走看看