unix - 一次中断所有 lerna --parallel 任务

标签 unix create-react-app lerna

我有一个 lerna 脚本( lerna dev ),它使用 --parallel 启动几个包的开发服务器选项(如果我不使用该选项,则只会启动第一个服务,而不会启动其他服务)。这些服务器在不同端口上以开发模式为各自的应用程序提供服务,并带有热重载。基本上,这允许顺利开发,因为我们只需要输入一个命令即可开始处理多个包。

我注意到的问题是,当我中断此 lerna 任务时,服务器不会关闭。当我运行我的 lerna dev命令,它会打印消息,说明服务器已经在它们使用的端口上运行。这意味着,当我关闭 lerna dev 时命令(使用 CTRL+C),它不会杀死所有正在运行的进程(有些被杀死,有些没有)。

有趣的是,那些没有关闭的是 create-react-app projects .

所以这是我的问题:我如何确保通过 lerna run 启动进程命令与 --parallel选项都与主进程一起被杀死?

PS:这发生在 Unix 系统上,我们不使用 Windows。

最佳答案

我建议您不要为此使用 ctrl+c。看看使用 kill 通过 pid(进程 ID)杀死进程或 pkill -f .

首先,看看哪些 lerna 进程正在运行。我的猜测是 ps aux | grep lerna应该在那里显示您想要的内容(如果需要,请调整 grep)。如果是这样的话,你可能会看到一个主进程(我在使用 Nginx 时会看到,我从来没有使用过 lerna)如果是这样的话 PID并输入 kill PID其中 PID 是您的主 PID。如果这不会杀死所有进程,请使用 pkill -f lerna杀死与 lerna 搜索词匹配的所有进程(如果需要,再次调整)。

有关如何根据搜索词终止进程的更多信息,请参阅 How to kill all processes matching a name

关于unix - 一次中断所有 lerna --parallel 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52926315/

相关文章:

c - POSIX系统上通用字符有什么用?

javascript - 如何在创建 React 应用程序时使用 webpack devServer 代理

reactjs - React hooks - 当对象集合中的嵌套属性发生更改时触发 useEffect

react-native - 在 React-Native 项目中开 Jest 。如何将重复模块列入黑名单或删除?

aws-code-deploy - AWS CodeBuild 和 CodeDeploy 上的 Lerna 未安装本地依赖项

linux - 比较驻留在不同目录中的文件的两个版本

c - SIGINT(ctrl+c) 不中断接受调用

javascript - Apollo useQuery() 抛出错误 : ECONNREFUSED when running async test in React Testing Library

javascript - 在处理 monorepo 时如何正确使用 lerna 和 webpack

sockets - TCP 环回连接与 Unix 域套接字性能