added 'service' console command

Bryan Roe committed Jul 1, 2020 at 13:15 UTC c2b8da3cd994c6717a35dee5adcff8d4897febb7
1 file changed +31 -1
agents/meshcore.js
+31 -1
@@ -2245,7 +2245,7 @@ function createMeshCore(agent) {
2245 var response = null;
2246 switch (cmd) {
2247 case 'help': { // Displays available commands
2248 - var fin = '', f = '', availcommands = 'fdsnapshot,fdcount,startupoptions,alert,agentsize,versions,help,info,osinfo,args,print,type,dbkeys,dbget,dbset,dbcompact,eval,parseuri,httpget,nwslist,plugin,wsconnect,wssend,wsclose,notify,ls,ps,kill,amt,netinfo,location,power,wakeonlan,setdebug,smbios,rawsmbios,toast,lock,users,sendcaps,openurl,amtreset,amtccm,amtacm,amtdeactivate,amtpolicy,getscript,getclip,setclip,log,av,cpuinfo,sysinfo,apf,scanwifi,scanamt,wallpaper';
2248 + var fin = '', f = '', availcommands = 'service,fdsnapshot,fdcount,startupoptions,alert,agentsize,versions,help,info,osinfo,args,print,type,dbkeys,dbget,dbset,dbcompact,eval,parseuri,httpget,nwslist,plugin,wsconnect,wssend,wsclose,notify,ls,ps,kill,amt,netinfo,location,power,wakeonlan,setdebug,smbios,rawsmbios,toast,lock,users,sendcaps,openurl,amtreset,amtccm,amtacm,amtdeactivate,amtpolicy,getscript,getclip,setclip,log,av,cpuinfo,sysinfo,apf,scanwifi,scanamt,wallpaper';
2249 if (process.platform == 'win32') { availcommands += ',safemode,wpfhwacceleration,uac'; }
2250 if (process.platform != 'freebsd') { availcommands += ',vm';}
2251 if (require('MeshAgent').maxKvmTileSize != null) { availcommands += ',kvmmode'; }
@@ -2260,6 +2260,36 @@ function createMeshCore(agent) {
2260 response = "Available commands: \r\n" + fin + ".";
2261 break;
2262 }
2263 + case 'service':
2264 + if (args['_'].length != 1)
2265 + {
2266 + response = "Proper usage: service status|restart"; // Display usage
2267 + }
2268 + else
2269 + {
2270 + var s = require('service-manager').manager.getService(process.platform == 'win32' ? 'Mesh Agent' : 'meshagent');
2271 + switch(args['_'][0].toLowerCase())
2272 + {
2273 + case 'status':
2274 + response = 'Service ' + (s.isRunning() ? (s.isMe() ? '[SELF]' : '[RUNNING]') : ('[NOT RUNNING]'));
2275 + break;
2276 + case 'restart':
2277 + if (s.isMe())
2278 + {
2279 + s.restart();
2280 + }
2281 + else
2282 + {
2283 + response = 'Restarting another agent instance is not allowed';
2284 + }
2285 + break;
2286 + default:
2287 + response = "Proper usage: service status|restart"; // Display usage
2288 + break;
2289 + }
2290 + if (process.platform == 'win32') { s.close(); }
2291 + }
2292 + break;
2293 case 'zip':
2294 if (args['_'].length == 0)
2295 {