forked from sim0n00ps/OF-DL
Added check if other process is already running.
This commit is contained in:
parent
45920ce3f4
commit
fa01fbd2d4
@ -1,3 +1,5 @@
|
||||
using System.Diagnostics;
|
||||
using System.Reflection;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
AnsiConsole.Write(new FigletText("Welcome to OF-DL").Color(Color.Red));
|
||||
@ -5,6 +7,8 @@ AnsiConsole.Write(new FigletText("Welcome to OF-DL").Color(Color.Red));
|
||||
ServiceCollection services = await ConfigureServices(args);
|
||||
ServiceProvider serviceProvider = services.BuildServiceProvider();
|
||||
|
||||
ExitIfOtherProcess(serviceProvider);
|
||||
|
||||
Worker worker = serviceProvider.GetRequiredService<Worker>();
|
||||
await worker.RunAsync();
|
||||
|
||||
@ -149,3 +153,23 @@ static bool ParseCommandlineArgs(string[] args, Config currentConfig, out Cajeta
|
||||
}
|
||||
}
|
||||
|
||||
static void ExitIfOtherProcess(ServiceProvider serviceProvider)
|
||||
{
|
||||
Assembly? entryAssembly = Assembly.GetEntryAssembly();
|
||||
AssemblyName? entryAssemblyName = entryAssembly?.GetName();
|
||||
|
||||
if (entryAssemblyName?.Name is null)
|
||||
return;
|
||||
|
||||
Process thisProcess = Process.GetCurrentProcess();
|
||||
Process[] otherProcesses = [.. Process.GetProcessesByName(entryAssemblyName.Name).Where(p => p.Id != thisProcess.Id)];
|
||||
|
||||
if (otherProcesses.Length <= 0)
|
||||
return;
|
||||
|
||||
AnsiConsole.Markup($"[green]Other OF DL process detected, exiting..\n[/]");
|
||||
Log.Warning("Other OF DL process detected, exiting..");
|
||||
|
||||
serviceProvider.GetRequiredService<ExitHelper>().ExitWithCode(0);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user