From a93c3c6fd09bb19b1548ccf7ceaeb203758e3c6c Mon Sep 17 00:00:00 2001 From: nocturn9x Date: Mon, 27 Dec 2021 18:21:07 +0100 Subject: [PATCH] Failed attempts to fix missing stderr from supervised processes --- src/core/services.nim | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/core/services.nim b/src/core/services.nim index 610e693..6810daa 100644 --- a/src/core/services.nim +++ b/src/core/services.nim @@ -224,12 +224,12 @@ proc streamLoggerWorker(logger: Logger, service: Service, stream: Stream) = ## in a formatted manner into our logging system try: logger.debug("Switching logs to file") - # logger.switchToFile() + logger.switchToFile() var line: string = "" while stream.readLine(line): logger.info(&"{service.name}: {line}") except: - logger.error(&"An error occurred in loggerWorker: {getCurrentExceptionMsg()}") + logger.error(&"An error occurred in streamLoggerWorker: {getCurrentExceptionMsg()}") quit(-1) @@ -261,6 +261,7 @@ proc supervisorWorker(logger: Logger, service: Service, process: Process) = else: sig = -1 logger.trace(&"Call to waitpid() set status to {status} and returned {returnCode}, setting sig to {sig}") + process.close() case service.restart: of Never: 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: addManagedProcess(pid, service) 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: logger.trace(&"Calling waitpid() on {pid}") 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.trace(&"Calling waitpid() on {pid}") var returnCode = waitPid(cint(pid), status, WUNTRACED) - logger.trace(&"Call to waitpid() on {pid} set status to {status} and returned {returnCode}") \ No newline at end of file + logger.trace(&"Call to waitpid() on {pid} set status to {status} and returned {returnCode}")