三木社区

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 307|回复: 0
打印 上一主题 下一主题

创建同步进程

[复制链接]

1562

主题

1564

帖子

4904

积分

博士

Rank: 8Rank: 8

积分
4904
跳转到指定楼层
楼主
发表于 2017-8-8 08:28:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以下这些方法是同步的,意味着他会阻塞事件循环,并暂停执行代码,直到 spawned 的进程退出。
同步方法简化了任务进程,比如大为简化在应用初始化加载/处理过程。
child_process.spawnSync(command[, args][, options])
  • command {String} 要执行的命令
  • args {Array} 参数列表
  • options {Object}
    • cwd {String} 子进程的当前工作目录
    • input {String|Buffer} 传递给spawned 进程的值,这个值将会重写 stdio[0]
    • stdio {Array} 子进程的 stdio 配置。
    • env {Object} 环境变量
    • uid {Number} 设置用户进程的ID。 (参见 setuid(2)。)
    • gid {Number} 设置进程组的ID。 (参见 setgid(2)。)
    • timeout {Number} 子进程运行最大毫秒数。 (默认: undefined)
    • killSignal {String} 用来终止子进程的信号。 (默认: 'SIGTERM')
    • maxBuffer {Number}
    • encoding {String} stdio 输入和输出的编码方式。 (默认: 'buffer')
  • 返回: {Object}
    • pid {Number} 子进程的 pid
    • output {Array} stdio 输出的结果数组
    • stdout {Buffer|String} output[1] 的内容
    • stderr {Buffer|String} output[2] 的内容
    • status {Number} 子进程的退出代码
    • signal {String} 用来杀死子进程的信号
    • error {Error} 子进程错误或超时的错误代码

spawnSync 直到子进程关闭才会返回。超时或者收到 killSignal 信号,也不会返回,直到进程完全退出。进程处理完 SIGTERM 信号后并不会结束,直到子进程完全退出。
child_process.execFileSync(command[, args][, options])
  • command {String} 要执行的命令
  • args {Array} 参数列表
  • options {Object}
    • cwd {String} 子进程的当前工作目录
    • input {String|Buffer}传递给spawned 进程的值,这个值将会重写 stdio[0]
    • stdio {Array}子进程的 stdio 配置。 (默认: 'pipe')
      • stderr 默认情况下会输出给父进程的' stderr 除非指定了 stdio
    • env {Object} 环境变量
    • uid {Number} 设置用户进程的ID。 (参见 setuid(2)。)
    • gid {Number} 设置进程组的ID。 (参见 setgid(2)。)
    • timeout {Number} 进程运行最大毫秒数。 (默认: undefined)
    • killSignal {String} 用来终止子进程的信号。 (默认: 'SIGTERM')
    • maxBuffer {Number}
    • encoding {String} stdio 输入和输出的编码方式。 (默认: 'buffer')
  • 返回: {Buffer|String} 来自命令的 stdout
直到子进程完全退出,execFileSync 才会返回。超时或者收到 killSignal 信号,也不会返回,直到进程完全退出。进程处理完 SIGTERM 信号后并不会结束,直到子进程完全退出。
如果进程超时,或者非正常退出,这个方法将会抛出异常。Error 会包含整个 child_process.spawnSync结果。
child_process.execSync(command[, options])
  • command {String} 要执行的命令
  • options {Object}
    • cwd {String} 子进程的当前工作目录
    • input {String|Buffer} 传递给spawned 进程的值,这个值将会重写 stdio[0]
    • stdio {Array} 子进程的 stdio 配置。 (默认: 'pipe')
      • stderr 默认情况下会输出给父进程的' stderr 除非指定了 stdio
    • env {Object} 环境变量
    • uid {Number} 设置用户进程的ID。 (参见 setuid(2)。)
    • gid {Number} 设置进程组的ID。 (参见 setgid(2)。)
    • timeout {Number} 进程运行最大毫秒数。 (默认: undefined)
    • killSignal {String} 用来终止子进程的信号。 (默认: 'SIGTERM')
    • maxBuffer {Number}
    • encoding {String} stdio 输入和输出的编码方式。 (默认: 'buffer')
  • 返回: {Buffer|String} 来自命令的 stdout
直到子进程完全退出,execSync 才会返回。超时或者收到 killSignal 信号,也不会返回,直到进程完全退出。进程处理完 SIGTERM 信号后并不会结束,直到子进程完全退出。
如果进程超时,或者非正常退出,这个方法将会抛出异常。Error 会包含整个child_process.spawnSync结果。

回复

使用道具 举报

Archiver|手机版|小黑屋|三木电子社区 ( 辽ICP备11000133号-4 )

辽公网安备 21021702000620号

GMT+8, 2025-6-27 00:26 , Processed in 0.028378 second(s), 23 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表