diff --git a/MediaBrowser.Server.Mono/MonoAppHost.cs b/MediaBrowser.Server.Mono/MonoAppHost.cs index e51324ec4d..ded7bb5f3a 100644 --- a/MediaBrowser.Server.Mono/MonoAppHost.cs +++ b/MediaBrowser.Server.Mono/MonoAppHost.cs @@ -12,8 +12,6 @@ using MediaBrowser.IsoMounter; using MediaBrowser.Model.IO; using MediaBrowser.Model.Logging; using MediaBrowser.Model.System; -using MediaBrowser.Model.Updates; -using MediaBrowser.Server.Startup.Common; namespace MediaBrowser.Server.Mono { @@ -44,7 +42,7 @@ namespace MediaBrowser.Server.Mono protected override void RestartInternal() { - MainClass.Restart(StartupOptions); + MainClass.Restart(); } protected override List GetAssembliesWithPartsInternal() diff --git a/MediaBrowser.Server.Mono/Program.cs b/MediaBrowser.Server.Mono/Program.cs index 443699b5a3..21278e00d7 100644 --- a/MediaBrowser.Server.Mono/Program.cs +++ b/MediaBrowser.Server.Mono/Program.cs @@ -33,6 +33,9 @@ namespace MediaBrowser.Server.Mono private static ILogger _logger; private static IFileSystem FileSystem; + private static readonly TaskCompletionSource ApplicationTaskCompletionSource = new TaskCompletionSource(); + private static bool _restartOnShutdown; + public static void Main(string[] args) { var applicationPath = Assembly.GetEntryAssembly().Location; @@ -63,9 +66,13 @@ namespace MediaBrowser.Server.Mono } finally { - logger.Info("Shutting down"); - + _logger.Info("Disposing app host"); _appHost.Dispose(); + + if (_restartOnShutdown) + { + StartNewInstance(options); + } } } @@ -86,8 +93,6 @@ namespace MediaBrowser.Server.Mono return new ServerApplicationPaths(programDataPath, appFolderPath, Path.GetDirectoryName(applicationPath)); } - private static readonly TaskCompletionSource ApplicationTaskCompletionSource = new TaskCompletionSource(); - private static void RunApplication(ServerApplicationPaths appPaths, ILogManager logManager, StartupOptions options) { // Allow all https requests @@ -243,11 +248,15 @@ namespace MediaBrowser.Server.Mono ApplicationTaskCompletionSource.SetResult(true); } - public static void Restart(StartupOptions startupOptions) + public static void Restart() { - _logger.Info("Disposing app host"); - _appHost.Dispose(); + _restartOnShutdown = true; + Shutdown(); + } + + private static void StartNewInstance(StartupOptions startupOptions) + { _logger.Info("Starting new instance"); string module = startupOptions.GetOption("-restartpath"); @@ -260,9 +269,9 @@ namespace MediaBrowser.Server.Mono if (!startupOptions.ContainsOption("-restartargs")) { var args = Environment.GetCommandLineArgs() - .Skip(1) - .Select(NormalizeCommandLineArgument) - .ToArray(); + .Skip(1) + .Select(NormalizeCommandLineArgument) + .ToArray(); commandLineArgsString = string.Join(" ", args); } @@ -271,9 +280,6 @@ namespace MediaBrowser.Server.Mono _logger.Info("Arguments: {0}", commandLineArgsString); Process.Start(module, commandLineArgsString); - - _logger.Info("Calling Environment.Exit"); - Environment.Exit(0); } private static string NormalizeCommandLineArgument(string arg) diff --git a/SharedVersion.cs b/SharedVersion.cs index 1fbacc73d4..c32f7bb8de 100644 --- a/SharedVersion.cs +++ b/SharedVersion.cs @@ -1,3 +1,3 @@ using System.Reflection; -[assembly: AssemblyVersion("3.2.29.2")] +[assembly: AssemblyVersion("3.2.30.1")]