Add ability for calcsticker to wait on depedencies

This commit is contained in:
2025-04-17 11:03:09 -04:00
parent 449b3743a9
commit a26e7da621
4 changed files with 41 additions and 2 deletions

View File

@@ -0,0 +1,16 @@
using System.Diagnostics;
namespace MarketData.Extensions
{
public static class ProcessExtensions
{
public static List<String> GetUnixCommandArguments(this Process process)
{
List<String> commandArguments = new List<String>();
String commandFile = $"/proc/{ process.Id }/cmdline";
if(!File.Exists(commandFile))return commandArguments;
String commandLine = File.ReadAllText(commandFile);
return commandLine.Split('\0').ToList();
}
}
}

View File

@@ -5,6 +5,7 @@ using System.Diagnostics;
using MarketData.MarketDataModel;
using System.Security.Principal;
using ThreadState=System.Threading.ThreadState;
using MarketData.Extensions;
namespace MarketData.Utils
{
@@ -13,6 +14,18 @@ namespace MarketData.Utils
private static DateTime epoch = DateTime.Parse("01-01-0001");
private static TimeSpan oneDay=new TimeSpan(1,0,0,0);
public static bool IsProcessRunning(String processName, List<String> commandArgs)
{
List<Process> processList = Process.GetProcessesByName(processName).ToList();
if(0==processList.Count)return false;
foreach(Process process in processList)
{
List<String> processCommandArguments = process.GetUnixCommandArguments();
List<String> intersection = processCommandArguments.Where(processCommandArg => commandArgs.Any(commandArg => processCommandArg.Equals(commandArg))).ToList();
if(intersection.Count>0)return true;
}
return false;
}
public static String ThreadStateToString(Thread thread)
{