You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Lerna:CTRL+C后进程未被终止

在Lerna的配置文件中,可以使用下面的代码段来确保在用户使用CTRL+C结束Lerna进程时能够正确地终止所有相关进程。

...
const childProcess = require('child_process');
const kill = require('tree-kill');

const execProcess = (command, env) => {
  const child = childProcess.exec(command, {
    env: {...process.env, ...env},
  });

  const onExit = (code, signal) => {
    if (!child.killed) {
      kill(child.pid, 'SIGTERM', () => {});
    }
  };

  process.on('SIGTERM', onExit);
  child.on('exit', onExit);

  return child;
};

const runCommand = (command, env) => {
  const child = execProcess(command, env);

  const promise = new Promise((resolve, reject) => {
    child.on('exit', (code, signal) => {
      if (code === 0) {
        resolve();
      } else {
        reject(new Error(`Process exited with code ${code}`));
      }
    });
  });

  return {
    child,
    promise,
  };
};
...

这段代码利用了tree-kill库,来确保当用户使用CTRL+C结束Lerna进程时,所有子进程也能够正确地终止。

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

理解 Language Server Protocol 的工作原理

其实背后是跑着一个对应这门语言的 language server 进程实例(也有开发者工具本身和 Language Server 耦合在一起的,比如 Eclipse),这个 Language Server 实例负责分析你当前打开的代码文件。市面上的编辑器 / ID... 由于编辑器和 Language Server 是两个进程,所以如果 Language Server 挂了,编辑器进程本身也还会存在,用户不用担心还没修改好的代码因此丢失的问题。有没有缺点?肯定有,那就是市面上所有的 编辑器 和 Language S...

深入剖析 split locks,i++ 可能导致的灾难

检测到如果在内核态会直接 panic,在用户态则会尝试主动 sleep 来降低 split lock 产生的频率,或者 kill 用户态进程,进而缓解对内存总线的争抢。在引入了虚拟化后,会尝试在 Host 侧处理,KVM 通知 QEMU 的 vCPU 线... #define MSR_TEST_CTRL 0x00000033```__split_lock_setup 中尝试 enable/disable 33H MSR 进行 verify,结束也并没有 enable split lock #AC exception,而是仅留下一个全局变量 msr_test_ctrl_cac...

关于浏览器缓存|社区征文

oninstall 事件的处理程序执行完毕后激活在下次用户访问的时候就可以通过拦截请求的方式查询是否存在缓存,存在缓存的话就可以直接读取缓存文件,否则就去请求数据。当 Service Worker 没有命中缓存的时候,会去调... 会随着进程的释放而释放。 **一旦我们关闭 Tab 页面,内存中的缓存也就被释放了,内存缓存在缓存资源时并不关心返回资源的HTTP缓存头Cache-Control是什么值,同时资源的匹配也并非仅仅是对URL做匹配,还可能会对Conten...

如何通过 Exit Code 定位 Pod 异常退出原因

# 问题描述如何根据 Pod 异常状态信息中的 Exit Code 进一步定位问题。# 问题分析有时pod退出并没有其他特殊信息提示,根据事件无法定位问题,需要根据Exit Code判断推断退出原因。# 问题解决1.如何查看Exit Co... Exit Code: 1```2.退出状态码说明* 状态码需在0 - 255之间。* 0表示正常退出。* 若因外界中断导致程序退出,则状态码区间为129 - 255。例如,操作系统给程序发送中断信号 kill -9 或 ctrl+c,导致程序...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

Lerna:CTRL+C后进程未被终止 -优选内容

配置透明大页
在khugepaged扫描进程内存,并将4kB页面合并为大页的这个过程中,对于操作的内存的各种分配活动都需要各种内存锁,直接影响程序的内存访问性能。并且,这个过程对于应用是透明的,在应用层面不可控制,对于专门为4kB内存... 后台任务占用系统资源。当系统没有足够的连续内存时,会触发内存压缩和内存回收,导致系统性能下降。 操作场景透明大页对系统性能的影响需要分场景看待,您可以根据实际场景选择是否启用THP。 SPECjbbⓇ场景在如标...
理解 Language Server Protocol 的工作原理
其实背后是跑着一个对应这门语言的 language server 进程实例(也有开发者工具本身和 Language Server 耦合在一起的,比如 Eclipse),这个 Language Server 实例负责分析你当前打开的代码文件。市面上的编辑器 / ID... 由于编辑器和 Language Server 是两个进程,所以如果 Language Server 挂了,编辑器进程本身也还会存在,用户不用担心还没修改好的代码因此丢失的问题。有没有缺点?肯定有,那就是市面上所有的 编辑器 和 Language S...
深入剖析 split locks,i++ 可能导致的灾难
检测到如果在内核态会直接 panic,在用户态则会尝试主动 sleep 来降低 split lock 产生的频率,或者 kill 用户态进程,进而缓解对内存总线的争抢。在引入了虚拟化后,会尝试在 Host 侧处理,KVM 通知 QEMU 的 vCPU 线... #define MSR_TEST_CTRL 0x00000033```__split_lock_setup 中尝试 enable/disable 33H MSR 进行 verify,结束也并没有 enable split lock #AC exception,而是仅留下一个全局变量 msr_test_ctrl_cac...
关于浏览器缓存|社区征文
oninstall 事件的处理程序执行完毕后激活在下次用户访问的时候就可以通过拦截请求的方式查询是否存在缓存,存在缓存的话就可以直接读取缓存文件,否则就去请求数据。当 Service Worker 没有命中缓存的时候,会去调... 会随着进程的释放而释放。 **一旦我们关闭 Tab 页面,内存中的缓存也就被释放了,内存缓存在缓存资源时并不关心返回资源的HTTP缓存头Cache-Control是什么值,同时资源的匹配也并非仅仅是对URL做匹配,还可能会对Conten...

Lerna:CTRL+C后进程未被终止 -相关内容

如何通过 Exit Code 定位 Pod 异常退出原因

# 问题描述如何根据 Pod 异常状态信息中的 Exit Code 进一步定位问题。# 问题分析有时pod退出并没有其他特殊信息提示,根据事件无法定位问题,需要根据Exit Code判断推断退出原因。# 问题解决1.如何查看Exit Co... Exit Code: 1```2.退出状态码说明* 状态码需在0 - 255之间。* 0表示正常退出。* 若因外界中断导致程序退出,则状态码区间为129 - 255。例如,操作系统给程序发送中断信号 kill -9 或 ctrl+c,导致程序...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询