Add ability for calcsticker to wait on depedencies
This commit is contained in:
16
MarketData/MarketDataLib/Extensions/ProcessExtensions.cs
Normal file
16
MarketData/MarketDataLib/Extensions/ProcessExtensions.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user