Skip to content
/ daemon Public

An easy service hosting library for Windows and Linux.

License

Notifications You must be signed in to change notification settings

hsu-net/daemon

Repository files navigation

Hsu.Daemon

dev preview main nuke build windows linux

Package Version

Name Source Stable Preview
Hsu.Daemon.Abstractions Nuget NuGet NuGet
Hsu.Daemon.Abstractions MyGet MyGet MyGet
Hsu.Daemon.Cli Nuget NuGet NuGet
Hsu.Daemon.Cli MyGet MyGet MyGet
Hsu.Daemon.Windows Nuget NuGet NuGet
Hsu.Daemon.Windows MyGet MyGet MyGet
Hsu.Daemon.Systemd Nuget NuGet NuGet
Hsu.Daemon.Systemd MyGet MyGet MyGet
Hsu.Daemon.Hosting Nuget NuGet NuGet
Hsu.Daemon.Hosting MyGet MyGet MyGet
Hsu.Daemon.Hosting.Web Nuget NuGet NuGet
Hsu.Daemon.Hosting.Web MyGet MyGet MyGet
Hsu.Daemon.Template Nuget NuGet NuGet
Hsu.Daemon.Template MyGet MyGet MyGet
  • Web : Used for IWebHost.

Getting Started

Self Commands

# windows
appName.exe --help
# Linux
dotnet appName.dll --help

Windows Service(.NET Framework)

PM> Install-Package Hsu.Daemon.Cli
PM> Install-Package Hsu.Daemon.Windows
var daemond = Daemond.CreateBuilder(args).UseWindowsServices().Build();
if (!daemond.Runnable()) return;
daemond
  .Configure(x => x
      .OnStart(OnStart)
      .OnStop(OnStop)
  )
  .Run();

Worker Service

PM> Install-Package Hsu.Daemon.Cli
PM> Install-Package Hsu.Daemon.Windows
PM> Install-Package Hsu.Daemon.Systemd
PM> Install-Package Hsu.Daemon.Hosting
// 1. To parser arguments 
var daemond = Daemond.CreateBuilder(args).UseWindowsServices().Build();
if (!daemond.Runnable()) return;
var builder = Host.CreateDefaultBuilder(args);

// 2. Use middleware
// builder.UseWindowsService();
// or
// builder.UseSystemd();

// 3. Execute serving or console
builder.Build().Run(daemond.Code);

License

MIT