Node.js 子进程的 cwd 和 env 如何设置,为什么会找不到命令?
解释 cwd 只改变子进程工作目录、env 显式对象不会自动与父环境合并,结合绝对可执行路径示例说明 PATH 查找、相对文件路径和跨平台环境键名问题。
Node.js · 进程与线程面试题第 1 页,显示第 1–42 题,共找到 42 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
解释 cwd 只改变子进程工作目录、env 显式对象不会自动与父环境合并,结合绝对可执行路径示例说明 PATH 查找、相对文件路径和跨平台环境键名问题。
Node.js 如何启动独立后台进程,detached 与 unref 各负责什么? 本文先给出可直接复述的结论,再用最小代码说明child_process detached 后台进程的工作方式、判断依据、项目边界和常见误区。
区分 spawn 的参数校验异常、异步启动失败和程序非零退出,解释 ENOENT 的命令与 cwd 来源,并用 Promise 包装示例展示及时监听 error 以及只结算一次的调用接口。
解释 execFile 默认不经过 shell 时元字符如何作为普通参数传递,通过参数回显示例验证边界,并讨论 shell:true、选项注入、路径授权、Windows 脚本与运行权限的限制。
区分子进程退出与标准流关闭,说明 exit 后输出仍可能到达、共享管道为何延迟 close,以及启动失败、退出信号和输出收集任务应如何统一收尾。
child_process.fork 与 spawn 有什么区别,IPC 通信如何设计? 本文先给出可直接复述的结论,再用最小代码说明child_process fork IPC 通信的工作方式、判断依据、项目边界和常见误区。
解释 exec 与 execFile 收集 stdout、stderr 的缓冲限制,使用中文输出示例区分字符数与字节数,并比较调整有界预算、spawn 流式消费、文件输出和保留有效诊断的处理方式。
如何实现 Node.js 子进程之间类似 shell 管道 a | b 的数据流转? 本文先给出可直接复述的结论,再用最小代码说明child_process pipe 管道 串联的工作方式、判断依据、项目边界和常见误区。
fork 的子进程 IPC 发送对象时序列化机制是什么,哪些类型不能传? 本文先给出可直接复述的结论,再用最小代码说明fork IPC 消息序列化 JSON 限制的工作方式、判断依据、项目边界和常见误区。
spawn 时设置 shell:true 会带来哪些行为变化和代价? 本文先给出可直接复述的结论,再用最小代码说明spawn shell true 区别的工作方式、判断依据、项目边界和常见误区。
Node.js 的 spawn 与 exec 有什么区别,怎么选择? 本文先给出可直接复述的结论,再用最小代码说明child_process spawn exec 区别的工作方式、判断依据、项目边界和常见误区。
child_process 的 stdio 中 pipe、inherit、ignore 分别是什么? 本文先给出可直接复述的结论,再用最小代码说明child_process stdio pipe inherit的工作方式、判断依据、项目边界和常见误区。
说明同步子进程阻塞当前 Node 线程事件循环的范围,区分 spawnSync 返回结果与 execSync 抛错,并纠正 timeout 一定按时返回的误解,给出 CLI、启动任务和服务请求的选择依据。
Node.js 父进程异常退出后其子进程会怎样,如何避免孤儿进程? 本文先给出可直接复述的结论,再用最小代码说明Node.js 孤儿进程 子进程清理的工作方式、判断依据、项目边界和常见误区。
Node.js cluster 模块如何工作,为什么能监听同一个端口? 本文先给出可直接复述的结论,再用最小代码说明cluster 模块 原理 共享端口的工作方式、判断依据、项目边界和常见误区。
cluster 模块的轮询调度策略在 Windows 之外如何分发新连接? 本文先给出可直接复述的结论,再用最小代码说明cluster round-robin 调度策略的工作方式、判断依据、项目边界和常见误区。
cluster 模式下 WebSocket 或有状态连接为什么需要粘性会话,如何实现? 本文先给出可直接复述的结论,再用最小代码说明cluster sticky session 粘性会话的工作方式、判断依据、项目边界和常见误区。
多核利用场景下 cluster 和 worker_threads 分别适合什么任务? 本文先给出可直接复述的结论,再用最小代码说明cluster worker_threads 选型 区别的工作方式、判断依据、项目边界和常见误区。
cluster 的主进程和 worker 进程之间如何通信? 本文先给出可直接复述的结论,再用最小代码说明cluster 主进程 worker IPC 通信的工作方式、判断依据、项目边界和常见误区。
cluster 中某个 worker 崩溃后如何保证服务整体可用? 本文先给出可直接复述的结论,再用最小代码说明cluster worker 崩溃 自动重启的工作方式、判断依据、项目边界和常见误区。
如何用 cluster 实现 Node.js 服务的平滑重启(零停机发布)? 本文先给出可直接复述的结论,再用最小代码说明cluster 平滑重启 零停机的工作方式、判断依据、项目边界和常见误区。
不引入 worker_threads 时如何把一个长 CPU 计算拆小避免阻塞事件循环? 本文先给出可直接复述的结论,再用最小代码说明CPU 任务 分片 setImmediate 事件循环的工作方式、判断依据、项目边界和常见误区。
设计 Node.js 接口服务时如何判断一个任务应该卸载到 Worker 线程? 本文先给出可直接复述的结论,再用最小代码说明CPU 密集 判断 卸载 Worker 线程的工作方式、判断依据、项目边界和常见误区。
子进程 IPC 消息发送过快时 send 返回 false 意味着什么? 本文先给出可直接复述的结论,再用最小代码说明IPC send 返回 false 背压的工作方式、判断依据、项目边界和常见误区。
Node.js IPC 中 send(message, sendHandle) 传递句柄能实现什么? 本文先给出可直接复述的结论,再用最小代码说明IPC sendHandle 传递 socket 句柄的工作方式、判断依据、项目边界和常见误区。
进程间通信选择 Node.js 内置 IPC 还是本地 TCP/Unix Socket,依据是什么? 本文先给出可直接复述的结论,再用最小代码说明IPC TCP Unix Socket 进程通信 选型的工作方式、判断依据、项目边界和常见误区。
进程级隔离和线程级隔离在 Node.js 故障场景下的行为差异是什么? 本文先给出可直接复述的结论,再用最小代码说明进程 线程 隔离 故障 Node.js的工作方式、判断依据、项目边界和常见误区。
在 Worker 线程中 AsyncLocalStorage 等异步上下文能否跨线程传递? 本文先给出可直接复述的结论,再用最小代码说明worker_threads AsyncLocalStorage 上下文的工作方式、判断依据、项目边界和常见误区。
Node.js Worker 线程中 Atomics.wait 和 Atomics.notify 解决什么问题? 本文先给出可直接复述的结论,再用最小代码说明Atomics wait notify 线程同步的工作方式、判断依据、项目边界和常见误区。
如何在 Node.js 中创建 Worker 线程执行 CPU 密集计算? 本文先给出可直接复述的结论,再用最小代码说明worker_threads 创建 CPU 密集 示例的工作方式、判断依据、项目边界和常见误区。
BroadcastChannel 在 worker_threads 场景下提供什么通信能力? 本文先给出可直接复述的结论,再用最小代码说明BroadcastChannel worker_threads 广播的工作方式、判断依据、项目边界和常见误区。
为什么 Node.js 的 CPU 密集任务应该放到 worker_threads 而不是主线程? 本文先给出可直接复述的结论,再用最小代码说明worker_threads CPU 密集 事件循环 阻塞的工作方式、判断依据、项目边界和常见误区。
Worker 线程抛出未捕获异常时主线程如何感知和处理? 本文先给出可直接复述的结论,再用最小代码说明worker_threads error 事件 异常处理的工作方式、判断依据、项目边界和常见误区。
MessageChannel 如何让两个 Worker 线程不经过主线程直接通信? 本文先给出可直接复述的结论,再用最小代码说明MessageChannel worker_threads 线程直连的工作方式、判断依据、项目边界和常见误区。
parentPort 和 isMainThread 在 worker_threads 中分别起什么作用? 本文先给出可直接复述的结论,再用最小代码说明parentPort isMainThread worker_threads的工作方式、判断依据、项目边界和常见误区。
如何设计一个 Node.js Worker 线程池来处理批量 CPU 密集任务? 本文先给出可直接复述的结论,再用最小代码说明worker_threads 线程池 设计的工作方式、判断依据、项目边界和常见误区。
Worker 线程池的线程数量应该依据什么来确定? 本文先给出可直接复述的结论,再用最小代码说明worker_threads 线程数 CPU 核数的工作方式、判断依据、项目边界和常见误区。
Worker 线程的 resourceLimits 选项能限制哪些资源,解决什么问题? 本文先给出可直接复述的结论,再用最小代码说明worker_threads resourceLimits 内存限制的工作方式、判断依据、项目边界和常见误区。
worker.terminate() 的语义是什么,调用后还能复用该 Worker 吗? 本文先给出可直接复述的结论,再用最小代码说明worker terminate 终止 复用的工作方式、判断依据、项目边界和常见误区。
Worker 线程间如何用 transferList 转移 ArrayBuffer 的所有权? 本文先给出可直接复述的结论,再用最小代码说明worker_threads transferList ArrayBuffer 转移的工作方式、判断依据、项目边界和常见误区。
worker_threads 与 child_process 在架构上的核心差异是什么? 本文先给出可直接复述的结论,再用最小代码说明worker_threads child_process 区别的工作方式、判断依据、项目边界和常见误区。
workerData 适合向 Worker 线程传什么,和 postMessage 传参有何不同? 本文先给出可直接复述的结论,再用最小代码说明workerData worker_threads 初始化参数的工作方式、判断依据、项目边界和常见误区。