mirror of https://github.com/lidarr/Lidarr
Merge pull request #774 from Sonarr/preserve-startup-args
Preserve startup arguments during restart
This commit is contained in:
commit
68e12f1c5e
|
@ -1,5 +1,4 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Runtime.InteropServices.ComTypes;
|
|
||||||
|
|
||||||
namespace NzbDrone.Common.EnvironmentInfo
|
namespace NzbDrone.Common.EnvironmentInfo
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
|
||||||
using NLog;
|
using NLog;
|
||||||
using NzbDrone.Common;
|
using NzbDrone.Common;
|
||||||
using NzbDrone.Common.Disk;
|
using NzbDrone.Common.Disk;
|
||||||
|
|
|
@ -14,12 +14,14 @@ namespace NzbDrone.Host
|
||||||
{
|
{
|
||||||
private readonly IRuntimeInfo _runtimeInfo;
|
private readonly IRuntimeInfo _runtimeInfo;
|
||||||
private readonly IProcessProvider _processProvider;
|
private readonly IProcessProvider _processProvider;
|
||||||
|
private readonly IStartupContext _startupContext;
|
||||||
private readonly Logger _logger;
|
private readonly Logger _logger;
|
||||||
|
|
||||||
public SpinService(IRuntimeInfo runtimeInfo, IProcessProvider processProvider, Logger logger)
|
public SpinService(IRuntimeInfo runtimeInfo, IProcessProvider processProvider, IStartupContext startupContext, Logger logger)
|
||||||
{
|
{
|
||||||
_runtimeInfo = runtimeInfo;
|
_runtimeInfo = runtimeInfo;
|
||||||
_processProvider = processProvider;
|
_processProvider = processProvider;
|
||||||
|
_startupContext = startupContext;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,13 +32,29 @@ namespace NzbDrone.Host
|
||||||
Thread.Sleep(1000);
|
Thread.Sleep(1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
_logger.Debug("wait loop was terminated.");
|
_logger.Debug("Wait loop was terminated.");
|
||||||
|
|
||||||
if (_runtimeInfo.RestartPending)
|
if (_runtimeInfo.RestartPending)
|
||||||
{
|
{
|
||||||
_logger.Info("attemptig restart.");
|
var restartArgs = GetRestartArgs();
|
||||||
_processProvider.SpawnNewProcess(_runtimeInfo.ExecutingApplication, "--restart --nobrowser");
|
|
||||||
|
_logger.Info("Attempting restart with arguments: {0}", restartArgs);
|
||||||
|
_processProvider.SpawnNewProcess(_runtimeInfo.ExecutingApplication, restartArgs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string GetRestartArgs()
|
||||||
|
{
|
||||||
|
var args = _startupContext.PreservedArguments;
|
||||||
|
|
||||||
|
args += " /restart";
|
||||||
|
|
||||||
|
if (!args.Contains("/nobrowser"))
|
||||||
|
{
|
||||||
|
args += " /nobrowser";
|
||||||
|
}
|
||||||
|
|
||||||
|
return args;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue