如何在Windows

时间:2016-11-03 14:05:32

标签: google-chrome google-chrome-app

我正在尝试使用外部流程监控工具在Chrome应用程序死亡时提醒我。不幸的是,所有Chrome应用似乎都在自己的chrome.exe进程中运行,因此无法在监控工具中区分它们。有没有办法查看哪个Chrome应用正在哪个流程中运行?

2 个答案:

答案 0 :(得分:1)

虽然这肯定是一个手动解决方案(即您无法轻松将其提供给其他工具),Chrome的内置任务管理器(可通过菜单访问或 Shift + Esc )允许您将任务(在本例中为App)与系统进程ID相关联。

Task Manager

是否可以从"外部"或使用命令行调用仍然是一个悬而未决的问题。

有助于区分流程的一件事是应用程序进程始终使用--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);
});

希望能帮助别人