mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-20 09:04:42 +01:00
support run as service
This commit is contained in:
60
MediaBrowser.ServerApplication/BackgroundServiceInstaller.cs
Normal file
60
MediaBrowser.ServerApplication/BackgroundServiceInstaller.cs
Normal file
@@ -0,0 +1,60 @@
|
||||
using System.Collections;
|
||||
using System.ComponentModel;
|
||||
using System.ServiceProcess;
|
||||
|
||||
namespace MediaBrowser.ServerApplication
|
||||
{
|
||||
[RunInstaller(true)]
|
||||
public class BackgroundServiceInstaller : System.Configuration.Install.Installer
|
||||
{
|
||||
public BackgroundServiceInstaller()
|
||||
{
|
||||
var process = new ServiceProcessInstaller
|
||||
{
|
||||
Account = ServiceAccount.LocalSystem
|
||||
};
|
||||
|
||||
var serviceAdmin = new ServiceInstaller
|
||||
{
|
||||
StartType = ServiceStartMode.Manual,
|
||||
ServiceName = BackgroundService.Name,
|
||||
DisplayName = BackgroundService.DisplayName,
|
||||
DelayedAutoStart = true,
|
||||
Description = "The windows background service for Media Browser Server."
|
||||
};
|
||||
|
||||
// Microsoft didn't add the ability to add a
|
||||
// description for the services we are going to install
|
||||
// To work around this we'll have to add the
|
||||
// information directly to the registry but I'll leave
|
||||
// this exercise for later.
|
||||
|
||||
// now just add the installers that we created to our
|
||||
// parents container, the documentation
|
||||
// states that there is not any order that you need to
|
||||
// worry about here but I'll still
|
||||
// go ahead and add them in the order that makes sense.
|
||||
Installers.Add(process);
|
||||
Installers.Add(serviceAdmin);
|
||||
}
|
||||
|
||||
protected override void OnBeforeInstall(IDictionary savedState)
|
||||
{
|
||||
Context.Parameters["assemblypath"] = "\"" +
|
||||
Context.Parameters["assemblypath"] + "\" " + GetStartArgs();
|
||||
base.OnBeforeInstall(savedState);
|
||||
}
|
||||
|
||||
protected override void OnBeforeUninstall(IDictionary savedState)
|
||||
{
|
||||
Context.Parameters["assemblypath"] = "\"" +
|
||||
Context.Parameters["assemblypath"] + "\" " + GetStartArgs();
|
||||
base.OnBeforeUninstall(savedState);
|
||||
}
|
||||
|
||||
private string GetStartArgs()
|
||||
{
|
||||
return "-service";
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user