我正在尝试使用外部流程监控工具在Chrome应用程序死亡时提醒我。不幸的是,所有Chrome应用似乎都在自己的chrome.exe进程中运行,因此无法在监控工具中区分它们。有没有办法查看哪个Chrome应用正在哪个流程中运行?
答案 0 :(得分:1)
虽然这肯定是一个手动解决方案(即您无法轻松将其提供给其他工具),Chrome的内置任务管理器(可通过菜单访问或 Shift + Esc )允许您将任务(在本例中为App)与系统进程ID相关联。
是否可以从"外部"或使用命令行调用仍然是一个悬而未决的问题。
有助于区分流程的一件事是应用程序进程始终使用--extension-process
命令行开关启动。但这并不能让你告诉它是哪个应用程序(或扩展程序)。
如果启用了足够详细的日志记录,则可以从日志中解析过程ID。
答案 1 :(得分:0)
我终于可以使用任务列表执行此操作,并查找从 manifest.json 中的应用名称设置的窗口标题:
tasklist /FI "WINDOWTITLE eq MyChromeAppName" | find "chrome.exe"
出于监视器的目的,我将其包装在监视器应用程序可以使用的 node.js 函数中:
function chromeAppIsRunning(appName, cb){
var cmd = 'tasklist /FI "WINDOWTITLE eq ' + appName + '" | find "chrome.exe"';
childprocess.exec(cmd, function(err, stdout, stderr) {
stdout = (stdout || '').toLowerCase();
cb(stdout.indexOf('chrome.exe') > -1);
});
};
然后你可以像这样使用它:
chromeAppIsRunning('MyApp', function(exists){
console.log('MyApp is running:', exists);
});
希望能帮助别人