.NET hosting infrastructure for Systemd Services.
Install
| Product | Versions |
|---|---|
| .NET | |
| .NET Standard |
README
About
Provides an implementation for hosting an application as a Linux systemd service.
The package ensures proper communication between .NET applications and systemd, making it easier to build, deploy, and run applications as Linux services.
Key Features
- Systemd service integration
- Health check support
- Logging and diagnostics with different log levels
- Notify systemd on application state changes
How to Use
Wherever you configure your host, add the UseSystemd method to the builder chain:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseSystemd() // Enable running as a Systemd service
.ConfigureServices((hostContext, services) =>
{
...
});
The UseSystemd method will no-op when not running as a daemon, allowing normal debugging or production use both with and without systemd.
Registering the service requires a special file, called a unit file, to be added to the /etc/systemd/system directory.
For more information on this part, check the run your app as a Linux service with systemd guide.
Main Types
The main types provided by this library are:
Microsoft.Extensions.Hosting.Systemd.SystemdNotifierMicrosoft.Extensions.Hosting.Systemd.SystemdLifetimeMicrosoft.Extensions.Hosting.SystemdHostBuilderExtensions
Additional Documentation
Related Packages
Feedback & Contributing
Microsoft.Extensions.Hosting.Systemd is released as open source under the MIT license. Bug reports and contributions are welcome at the GitHub repository.
Changes from Previous Version
Adoption Assessment
A verified publisher signal is available. Assess fit from the package's supported frameworks, license and dependency graph rather than popularity alone.
Related Guides & Workflows
Learn how to evaluate, integrate, or audit this package in your .NET project.