如何给Node.js通过exec创建的子进程设置名称(Windows系统)
Windows环境下为exec启动的Node子进程设置专属名称的实现方法
你可以根据自身场景选择以下两种可行方案:
方案1:子进程侧主动设置进程标题(无需修改父进程代码)
直接在你的server.js入口文件的最顶部添加如下代码即可,该方法跨平台生效:
process.title = '自定义的子进程名称';
设置完成后,在Windows任务管理器的详情页中,对应node进程会直接显示你设置的自定义名称,也可以通过任务列表命令直接筛选该进程。
方案2:父进程调用时通过CMD命令参数设置(无需修改子进程代码)
Windows系统下child_process.exec默认依赖cmd.exe执行命令,你可以使用系统自带的start命令指定子进程标题,调整后的调用代码如下:
const exec = require('child_process').exec; // start命令第一个带引号的参数为子进程名称,第二个参数为要执行的程序,后续为程序参数 let cpr = exec('start "自定义的子进程名称" node server.js');
如果不需要弹出独立的cmd运行窗口,可以添加/B参数让子进程后台运行:
let cpr = exec('start /B "自定义的子进程名称" node server.js');
如果node路径或者server.js文件路径包含空格,需要单独给路径包裹双引号:
let cpr = exec('start /B "自定义的子进程名称" "C:\\Program Files\\nodejs\\node.exe" "D:\\项目文件夹\\server.js"');
效果验证方式
- 打开任务管理器的「详细信息」标签,查看对应node进程的「名称」或「命令行」列即可确认自定义名称是否生效
- 可以在CMD中执行
tasklist | findstr "自定义的子进程名称"命令,直接筛选出目标子进程
内容的提问来源于stack exchange,提问作者Abde Laziz
相关产品推荐
相关产品推荐

