diff --git a/MatrixSystemdBridge/MatrixSystemdBridge.csproj b/MatrixSystemdBridge/MatrixSystemdBridge.csproj
new file mode 100644
index 0000000..898c00b
--- /dev/null
+++ b/MatrixSystemdBridge/MatrixSystemdBridge.csproj
@@ -0,0 +1,13 @@
+<Project Sdk="Microsoft.NET.Sdk.Worker">
+
+ <PropertyGroup>
+ <TargetFramework>net9.0</TargetFramework>
+ <Nullable>enable</Nullable>
+ <ImplicitUsings>enable</ImplicitUsings>
+ <UserSecretsId>dotnet-MatrixSystemdBridge-dd5992c3-6b6d-47a2-8e7f-f8397e66b23a</UserSecretsId>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <PackageReference Include="Microsoft.Extensions.Hosting" Version="9.0.8"/>
+ </ItemGroup>
+</Project>
diff --git a/MatrixSystemdBridge/Program.cs b/MatrixSystemdBridge/Program.cs
new file mode 100644
index 0000000..8c011ee
--- /dev/null
+++ b/MatrixSystemdBridge/Program.cs
@@ -0,0 +1,7 @@
+using MatrixSystemdBridge;
+
+var builder = Host.CreateApplicationBuilder(args);
+builder.Services.AddHostedService<Worker>();
+
+var host = builder.Build();
+host.Run();
\ No newline at end of file
diff --git a/MatrixSystemdBridge/Properties/launchSettings.json b/MatrixSystemdBridge/Properties/launchSettings.json
new file mode 100644
index 0000000..06f7ef3
--- /dev/null
+++ b/MatrixSystemdBridge/Properties/launchSettings.json
@@ -0,0 +1,12 @@
+{
+ "$schema": "https://json.schemastore.org/launchsettings.json",
+ "profiles": {
+ "MatrixSystemdBridge": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "environmentVariables": {
+ "DOTNET_ENVIRONMENT": "Development"
+ }
+ }
+ }
+}
diff --git a/MatrixSystemdBridge/Worker.cs b/MatrixSystemdBridge/Worker.cs
new file mode 100644
index 0000000..ee23c79
--- /dev/null
+++ b/MatrixSystemdBridge/Worker.cs
@@ -0,0 +1,24 @@
+namespace MatrixSystemdBridge;
+
+public class Worker : BackgroundService
+{
+ private readonly ILogger<Worker> _logger;
+
+ public Worker(ILogger<Worker> logger)
+ {
+ _logger = logger;
+ }
+
+ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
+ {
+ while (!stoppingToken.IsCancellationRequested)
+ {
+ if (_logger.IsEnabled(LogLevel.Information))
+ {
+ _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
+ }
+
+ await Task.Delay(1000, stoppingToken);
+ }
+ }
+}
\ No newline at end of file
diff --git a/MatrixSystemdBridge/appsettings.Development.json b/MatrixSystemdBridge/appsettings.Development.json
new file mode 100644
index 0000000..b2dcdb6
--- /dev/null
+++ b/MatrixSystemdBridge/appsettings.Development.json
@@ -0,0 +1,8 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.Hosting.Lifetime": "Information"
+ }
+ }
+}
diff --git a/MatrixSystemdBridge/appsettings.json b/MatrixSystemdBridge/appsettings.json
new file mode 100644
index 0000000..b2dcdb6
--- /dev/null
+++ b/MatrixSystemdBridge/appsettings.json
@@ -0,0 +1,8 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.Hosting.Lifetime": "Information"
+ }
+ }
+}
|