|
|
|
@ -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");
|
|
|
|
@ -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)
|
|
|
|
|