mirror of https://github.com/nocturn9x/nimd.git
Failed attempts to fix missing stderr from supervised processes
This commit is contained in:
parent
b68b6f5e74
commit
a93c3c6fd0
|
@ -224,12 +224,12 @@ proc streamLoggerWorker(logger: Logger, service: Service, stream: Stream) =
|
||||||
## in a formatted manner into our logging system
|
## in a formatted manner into our logging system
|
||||||
try:
|
try:
|
||||||
logger.debug("Switching logs to file")
|
logger.debug("Switching logs to file")
|
||||||
# logger.switchToFile()
|
logger.switchToFile()
|
||||||
var line: string = ""
|
var line: string = ""
|
||||||
while stream.readLine(line):
|
while stream.readLine(line):
|
||||||
logger.info(&"{service.name}: {line}")
|
logger.info(&"{service.name}: {line}")
|
||||||
except:
|
except:
|
||||||
logger.error(&"An error occurred in loggerWorker: {getCurrentExceptionMsg()}")
|
logger.error(&"An error occurred in streamLoggerWorker: {getCurrentExceptionMsg()}")
|
||||||
quit(-1)
|
quit(-1)
|
||||||
|
|
||||||
|
|
||||||
|
@ -261,6 +261,7 @@ proc supervisorWorker(logger: Logger, service: Service, process: Process) =
|
||||||
else:
|
else:
|
||||||
sig = -1
|
sig = -1
|
||||||
logger.trace(&"Call to waitpid() set status to {status} and returned {returnCode}, setting sig to {sig}")
|
logger.trace(&"Call to waitpid() set status to {status} and returned {returnCode}, setting sig to {sig}")
|
||||||
|
process.close()
|
||||||
case service.restart:
|
case service.restart:
|
||||||
of Never:
|
of Never:
|
||||||
logger.info(&"Service '{service.name}' ({returnCode}) has exited, shutting down controlling process")
|
logger.info(&"Service '{service.name}' ({returnCode}) has exited, shutting down controlling process")
|
||||||
|
@ -369,7 +370,7 @@ proc startServices*(logger: Logger, level: RunLevel, workers: int = 1) =
|
||||||
if service.supervised:
|
if service.supervised:
|
||||||
addManagedProcess(pid, service)
|
addManagedProcess(pid, service)
|
||||||
if len(pids) == workers:
|
if len(pids) == workers:
|
||||||
logger.debug(&"""Worker queue full, waiting for some worker{(if workers > 1: "s" else: "")} to exit...""")
|
logger.debug(&"""Worker queue full, waiting for some worker{(if workers > 1: "s" else: "")} to exit""")
|
||||||
for i, pid in pids:
|
for i, pid in pids:
|
||||||
logger.trace(&"Calling waitpid() on {pid}")
|
logger.trace(&"Calling waitpid() on {pid}")
|
||||||
var returnCode = waitPid(cint(pid), status, WUNTRACED)
|
var returnCode = waitPid(cint(pid), status, WUNTRACED)
|
||||||
|
@ -380,4 +381,4 @@ proc startServices*(logger: Logger, level: RunLevel, workers: int = 1) =
|
||||||
logger.debug(&"Waiting for completion of service spawning in runlevel {($level).toLowerAscii()}")
|
logger.debug(&"Waiting for completion of service spawning in runlevel {($level).toLowerAscii()}")
|
||||||
logger.trace(&"Calling waitpid() on {pid}")
|
logger.trace(&"Calling waitpid() on {pid}")
|
||||||
var returnCode = waitPid(cint(pid), status, WUNTRACED)
|
var returnCode = waitPid(cint(pid), status, WUNTRACED)
|
||||||
logger.trace(&"Call to waitpid() on {pid} set status to {status} and returned {returnCode}")
|
logger.trace(&"Call to waitpid() on {pid} set status to {status} and returned {returnCode}")
|
||||||
|
|
Loading…
Reference in New Issue