process-list-manager
Advanced tools
Comparing version 1.0.4 to 1.0.5
{ | ||
"name": "process-list-manager", | ||
"version": "1.0.4", | ||
"version": "1.0.5", | ||
"description": "Nodejs based init system called process list manager - pol", | ||
@@ -5,0 +5,0 @@ "bin": { |
@@ -121,3 +121,3 @@ const { cliSplitByLine, cliRuns, execRuns, log, logFile, TASK_INDENT } = require('./global'); | ||
const stopRunChecker = (serviceName, stage, logger) => { | ||
const stopRunChecker = (serviceName, stage) => { | ||
const onStage = `on${stage}`, afterStage = `after${stage}`; | ||
@@ -131,2 +131,3 @@ | ||
onInterval.id = clearInterval(onInterval.id); | ||
if (global[serviceName].serviceStartResolver) global[serviceName].serviceStartResolver(); | ||
} | ||
@@ -157,2 +158,3 @@ if (afterInterval) { | ||
promiseAllService.push(new Promise(r => serviceStartResolver = r)); | ||
serv.serviceStartResolver = serviceStartResolver; | ||
ServicesStates.init(service.name); | ||
@@ -166,2 +168,3 @@ | ||
logger.write(`[${term.fc.yellow} WARN ${term.mc.resetAll}] ${service.name} is already running ...`); | ||
serviceStartResolver(); | ||
continue; | ||
@@ -205,5 +208,11 @@ } | ||
} | ||
ServicesStates.setDownState(serviceName); | ||
if (serviceName === '--all') { | ||
for (const srv of ServiceList) { | ||
ServicesStates.setDownState(srv.name); | ||
} | ||
} | ||
const promiseAllService = []; | ||
return new Promise(async (resolve) => { | ||
// todo a service-en kell menni nem a running process-en | ||
for (const servName of RunningServices) { | ||
@@ -219,3 +228,3 @@ if (serviceName === '--all' || serviceName === servName) { | ||
if (p.serviceName === servName) { | ||
ServicesStates.setDownState(servName); | ||
stopRunChecker(servName, 'Start'); | ||
let headMsg = TASK_INDENT; | ||
@@ -226,3 +235,3 @@ if (srv !== servName) { | ||
} | ||
const { c } = await cliSplitByLine('kill', p.procId); | ||
const { c } = await cliSplitByLine('kill', '-9', p.procId); | ||
if (c == 0) { | ||
@@ -238,7 +247,7 @@ logger.write(`${headMsg} ${servName} service with proc/pid[${p.procName}/${p.procId}] ...`); | ||
if (serv.onStop) { | ||
new Promise(r => serv.ssOnStop.stopAll = r).then(async () => { | ||
serv.ssOnStop.stopAll = async () => { | ||
// TODO handle if has pre started cli | ||
await _stop(); | ||
startRunChecker(servName, 'after', 'onStop', 'stopped', logger, postStopResolver); | ||
return _stop(); | ||
}); | ||
}; | ||
serv.onStop(serv.ssOnStop); | ||
@@ -252,3 +261,2 @@ startRunChecker(servName, 'before', 'onStop', 'stopped', logger, preStopResolver); | ||
Promise.all(promiseAllPrePostStopDone).then(() => { | ||
stopRunChecker(servName, 'Start', logger); | ||
serviceStopResolver(); | ||
@@ -281,15 +289,31 @@ }); | ||
await serverCreate(async (msg, socket) => { | ||
switch (msg._[0]) { | ||
case "stop": | ||
await lookup(); | ||
await stop(msg._[1] ? msg._[1] : msg.all ? "--all" : null, socket); | ||
if (!msg._.length || (msg._.length < 2 && !msg.all)) { | ||
socket.write(POSSIBLE_OPTIONS_MSG); | ||
socket.end(); | ||
} else { | ||
await lookup(); | ||
await stop(msg._[1] ? msg._[1] : msg.all ? "--all" : null, socket); | ||
} | ||
break; | ||
case "start": | ||
await lookup(); | ||
await start(msg._[1] ? msg._[1] : msg.all ? "--all" : null, socket); | ||
if (!msg._.length || (msg._.length < 2 && !msg.all)) { | ||
socket.write(POSSIBLE_OPTIONS_MSG); | ||
socket.end(); | ||
} else { | ||
await lookup(); | ||
await start(msg._[1] ? msg._[1] : msg.all ? "--all" : null, socket); | ||
} | ||
break; | ||
case "restart": | ||
await lookup(); | ||
const success = await stop(msg._[1] ? msg._[1] : msg.all ? "--all" : null, socket, false); | ||
if (success) await start(msg._[1] ? msg._[1] : msg.all ? "--all" : null, socket); | ||
if (!msg._.length || (msg._.length < 2 && !msg.all)) { | ||
socket.write(POSSIBLE_OPTIONS_MSG); | ||
socket.end(); | ||
} else { | ||
await lookup(); | ||
const success = await stop(msg._[1] ? msg._[1] : msg.all ? "--all" : null, socket, false); | ||
if (success) await start(msg._[1] ? msg._[1] : msg.all ? "--all" : null, socket); | ||
} | ||
break; | ||
@@ -300,7 +324,2 @@ } | ||
if (LoginService && LoginService.onLogin) { | ||
process.env = { | ||
...envs, | ||
POL: `__POL__${LoginService.name}__${new Date().getTime()}__POL__` | ||
}; | ||
LoginService.onLogin(LoginService.ssOnLogin); | ||
const logout = async () => { | ||
@@ -312,10 +331,18 @@ // only stop process if there was login | ||
} | ||
if (execRuns[LoginService.name]['onLogin']) { | ||
execRuns[LoginService.name]['onLogin'].promise.then(async () => { | ||
if (ServicesStates.isDownState(LoginService.name)) | ||
await logout(); | ||
else { | ||
process.env = { | ||
...envs, | ||
POL: `__POL__${LoginService.name}__${new Date().getTime()}__POL__` | ||
}; | ||
LoginService.onLogin(LoginService.ssOnLogin); | ||
if (execRuns[LoginService.name]['onLogin']) { | ||
execRuns[LoginService.name]['onLogin'].promise.then(async () => { | ||
await logout(); | ||
}); | ||
} else { | ||
await logout(); | ||
}); | ||
} else { | ||
await logout(); | ||
} | ||
} | ||
} | ||
@@ -340,3 +367,3 @@ break; | ||
srv = p.serviceName; | ||
headMsg = `[${term.fc.green} RUN ${term.mc.resetAll}]`; | ||
headMsg = `[${term.fc.green} RUN ${term.mc.resetAll}] `; | ||
} | ||
@@ -343,0 +370,0 @@ log.log(headMsg, p.serviceName, `service with proc/pid[${p.procName}/${p.procId}] ...`); |
54374
1268