diff --git a/src/Tgstation.Server.Host/Components/Session/SessionControllerFactory.cs b/src/Tgstation.Server.Host/Components/Session/SessionControllerFactory.cs
index f315c9f335..92a76a973b 100644
--- a/src/Tgstation.Server.Host/Components/Session/SessionControllerFactory.cs
+++ b/src/Tgstation.Server.Host/Components/Session/SessionControllerFactory.cs
@@ -84,6 +84,11 @@ namespace Tgstation.Server.Host.Components.Session
///
readonly ILoggerFactory loggerFactory;
+ ///
+ /// The for the
+ ///
+ readonly ILogger logger;
+
///
/// The for the
///
@@ -121,6 +126,7 @@ namespace Tgstation.Server.Host.Components.Session
/// The value of .
/// The value of .
/// The value of
+ /// The value of .
public SessionControllerFactory(
IProcessExecutor processExecutor,
IByondManager byond,
@@ -134,6 +140,7 @@ namespace Tgstation.Server.Host.Components.Session
IBridgeRegistrar bridgeRegistrar,
IServerPortProvider serverPortProvider,
ILoggerFactory loggerFactory,
+ ILogger logger,
Api.Models.Instance instance)
{
this.processExecutor = processExecutor ?? throw new ArgumentNullException(nameof(processExecutor));
@@ -149,6 +156,7 @@ namespace Tgstation.Server.Host.Components.Session
this.bridgeRegistrar = bridgeRegistrar ?? throw new ArgumentNullException(nameof(bridgeRegistrar));
this.serverPortProvider = serverPortProvider ?? throw new ArgumentNullException(nameof(serverPortProvider));
this.loggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
+ this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
}
///
@@ -220,7 +228,20 @@ namespace Tgstation.Server.Host.Components.Session
byondLock.DreamDaemonPath,
basePath,
arguments,
+ noShellExecute,
+ noShellExecute,
noShellExecute: noShellExecute);
+
+ if (noShellExecute)
+ {
+ // Log DD output
+ _ = process.Lifetime.ContinueWith(
+ x => logger.LogTrace(
+ "DreamDaemon Output:{0}{1}",
+ Environment.NewLine, process.GetCombinedOutput()),
+ TaskScheduler.Current);
+ }
+
try
{
networkPromptReaper.RegisterProcess(process);