2013-09-20 18:04:14 -07:00
using MediaBrowser.Model.Logging ;
2015-05-23 13:44:15 -07:00
using System.Linq ;
2013-09-20 18:04:14 -07:00
using System.ServiceProcess ;
2013-09-20 10:32:10 -07:00
namespace MediaBrowser.ServerApplication
{
2013-09-20 18:04:14 -07:00
/// <summary>
/// Class BackgroundService
/// </summary>
2013-09-20 10:32:10 -07:00
public class BackgroundService : ServiceBase
{
2015-05-23 13:44:15 -07:00
public static string Name = "Emby" ;
public static string DisplayName = "Emby Server" ;
public static string GetExistingServiceName ( )
{
try
{
if ( ServiceController . GetServices ( ) . Any ( s = > s . ServiceName = = "MediaBrowser" ) )
{
return "MediaBrowser" ;
}
}
catch
{
return "MediaBrowser" ;
}
return Name ;
}
2013-09-20 18:04:14 -07:00
private readonly ILogger _logger ;
/// <summary>
/// Initializes a new instance of the <see cref="BackgroundService"/> class.
/// </summary>
public BackgroundService ( ILogger logger )
2013-09-20 10:32:10 -07:00
{
2013-09-20 18:04:14 -07:00
_logger = logger ;
2013-09-20 10:32:10 -07:00
CanPauseAndContinue = false ;
2013-09-20 18:04:14 -07:00
CanStop = true ;
2013-09-20 10:32:10 -07:00
2015-05-23 13:44:15 -07:00
ServiceName = GetExistingServiceName ( ) ;
2013-09-20 10:32:10 -07:00
}
2013-09-20 18:04:14 -07:00
/// <summary>
/// When implemented in a derived class, executes when a Stop command is sent to the service by the Service Control Manager (SCM). Specifies actions to take when a service stops running.
/// </summary>
protected override void OnStop ( )
2013-09-20 10:32:10 -07:00
{
2013-09-20 18:04:14 -07:00
_logger . Info ( "Stop command received" ) ;
base . OnStop ( ) ;
2013-09-20 10:32:10 -07:00
}
}
}