diff --git a/microscript/ILibDuktape_Polyfills.c b/microscript/ILibDuktape_Polyfills.c index b6a218f..867cb68 100644 --- a/microscript/ILibDuktape_Polyfills.c +++ b/microscript/ILibDuktape_Polyfills.c @@ -2393,7 +2393,7 @@ void ILibDuktape_Polyfills_JS_Init(duk_context *ctx) #endif // monitor-info: Refer to modules/monitor-info.js - duk_peval_string_noresult(ctx, "addCompressedModule('monitor-info', Buffer.from('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', 'base64'), '2021-09-01T23:21:19.000-07:00');"); + duk_peval_string_noresult(ctx, "addCompressedModule('monitor-info', Buffer.from('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', 'base64'), '2021-12-08T22:54:48.000-08:00');"); // service-host. Refer to modules/service-host.js duk_peval_string_noresult(ctx, "addCompressedModule('service-host', Buffer.from('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', 'base64'));"); diff --git a/modules/monitor-info.js b/modules/monitor-info.js index 8fb6f7b..1d656ef 100644 --- a/modules/monitor-info.js +++ b/modules/monitor-info.js @@ -519,9 +519,11 @@ function monitorinfo() child.stdin.write("ps " + (process.platform == 'freebsd'?"-ax ":"") + "-e -o user" + (process.platform=='linux'?":999":"") + " -o tty -o command | grep X | awk '{ split($0, a, \"-auth\"); split(a[2], b, \" \"); if($1==\"" + uname + "\" && b[1]!=\"\") { printf \"%s,%s,%s\",$1,$2,b[1] } }'\nexit\n"); child.waitExit(); var tokens = child.stdout.str.trim().split(','); + console.info1(JSON.stringify(tokens)); if (tokens.length == 3) { ret = { tty: tokens[1], xauthority: tokens[2], exportEnv: exportEnv }; + console.info1('ret => ' + JSON.stringify(ret)); } if (ret == null) @@ -543,7 +545,7 @@ function monitorinfo() child.stdin.write(' if((tok[2]+0)==' + consoleuid + ')'); child.stdin.write(' {'); child.stdin.write(' if(tok[4]=="") { continue; }'); - child.stdin.write(' printf "%s{\\"Username\\": \\"%s\\", \\"SessionId\\": \\"%s\\", \\"State\\": \\"Online\\", \\"uid\\": \\"%s\\"}", del, tok[3], tok[1], tok[2];'); + child.stdin.write(' printf "%s{\\"Username\\": \\"%s\\", \\"SessionId\\": \\"%s\\", \\"State\\": \\"Online\\", \\"uid\\": \\"%s\\", \\"tty\\": \\"%s\\"}", del, tok[3], tok[1], tok[2], tok[5];'); child.stdin.write(' del=",";'); child.stdin.write(' }'); child.stdin.write('}'); @@ -551,10 +553,16 @@ function monitorinfo() child.stdin.write("}'\nexit\n"); child.waitExit(); + console.info1('loginctl => ' + child.stdout.str); var info1 = JSON.parse(child.stdout.str); var sids = []; + var ttys = []; var i; - for (i = 0; i < info1.length; ++i) { sids.push(info1[i].SessionId); } + for (i = 0; i < info1.length; ++i) + { + sids.push(info1[i].SessionId); + if (info1[i].tty != '') { ttys.push(info1[i].tty); } + } child = require('child_process').execFile('/bin/sh', ['sh']); child.stdout.str = ''; child.stdout.on('data', function (chunk) { this.str += chunk.toString(); }); child.stderr.str = ''; child.stderr.on('data', function (chunk) { this.str += chunk.toString(); }); @@ -630,6 +638,51 @@ function monitorinfo() } } } + if (ret.display == '' && ttys.length > 0) + { + // We need to find $DISPLAY by looking at all the processes running on the same tty as the XServer instance for this user session + while (ttys.length > 0) + { + var tty = ttys.pop(); + child = require('child_process').execFile('/bin/sh', ['sh']); + child.stdout.str = ''; + child.stdout.on('data', function (chunk) { this.str += chunk.toString(); }); + child.stdin.write("ps -e -o tty -o pid -o uid | grep " + tty + " | grep " + consoleuid + " | awk '{ print $2 }' \nexit\n"); + child.waitExit(); + + var lines = child.stdout.str.split('\n'); + var ps, psx, v, vs = 0; + for (var x in lines) + { + if (lines[x].trim().length > 0) + { + try + { + ps = require('fs').readFileSync('/proc/' + lines[x].trim() + '/environ'); + } + catch (pse) + { + continue; + } + vs = 0; + for (psx = 0; psx < ps.length; ++psx) + { + if (ps[psx] == 0) + { + v = ps.slice(vs, psx).toString().split('='); + if (v[0] == 'DISPLAY') + { + ret.display = v[1]; + ret.tty = tty; + return (xinfo_xdm(ret, consoleuid)); + } + vs = psx + 1; + } + } + } + } + } + } return (xinfo_xdm(ret, consoleuid)); }