diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2017-08-28 14:19:23 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2017-08-28 14:19:23 -0400 |
| commit | 234c51ea9a7898e2d14f317a30cc81e13cf2810c (patch) | |
| tree | f03a6a29a899fe652dc176de4db3352c78e5ff1a /MediaBrowser.Server.Mono/Program.cs | |
| parent | 780b761456bd46fc7684a72a11afa35715f48c0b (diff) | |
3.2.30.1
Diffstat (limited to 'MediaBrowser.Server.Mono/Program.cs')
| -rw-r--r-- | MediaBrowser.Server.Mono/Program.cs | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/MediaBrowser.Server.Mono/Program.cs b/MediaBrowser.Server.Mono/Program.cs index 443699b5a..21278e00d 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<bool> ApplicationTaskCompletionSource = new TaskCompletionSource<bool>(); + 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<bool> ApplicationTaskCompletionSource = new TaskCompletionSource<bool>(); - 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) |
