最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何杀死npm子进程

运维笔记admin9浏览0评论

如何杀死npm子进程

如何杀死npm子进程

我有一个package.json,我定义了一个debug脚本。这个脚本启动了一个node应用程序。

整个npm脚本是通过测试启动的,一旦测试结束,最后一个必须杀死debug脚本。

所以,当我spawn npm run debug和我杀了它时,node进程没有被杀死。

我试图用child_process.kill杀死整个过程并产生一个没有运气的kill bash命令,因为pid不属于使用node发射的npm run debug

如何杀死我没有nodepid进程?

回答如下:

您没有必要拥有PID才能杀死它(只要运行脚本的用户有权这样做)。

您可以生成命令并像在命令行中那样执行它(其中有多种方式)。还有像find-process这样的软件包,您也可以使用它来查找过程。

更简单的方法是在debug启动时编写一些包含pid的文件(如果可以的话)。然后你可以重新读取该文件以获得PID。

// in debug
import { writeFile } from 'fs';

writeFile('debug.pid', process.pid, 'utf8', err => err && console.log('Error writing pid file'));

// in app where it'll kill
import { readFile } from 'fs';

let debugPid;
readFile('debug.pid', 'utf8', (err, data) => err ? console.log('Error reading pid file') : debugPid = data);

无论方法如何,一旦你有了PID,使用process.kill()来杀死它:

process.kill(pid);

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论