Как проверить, работает ли PHP-процесс, выполняющий определенный скрипт, используя c # .net?

У меня есть приложение .net, которое может выполнить скрипт php ..

    private const string PROGRAM_CALL = @"php.exe";
private const string PROGRAM_PARAMETERS = @"scriptA.php scriptA.cnf";

Следующий код выполняется в конструкторе класса:

ProcessStartInfo myProcessStartInfo = new ProcessStartInfo(PROGRAM_CALL)
{
UseShellExecute = false,
WorkingDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
RedirectStandardOutput = true,
Arguments = PROGRAM_PARAMETERS
};
_process.EnableRaisingEvents = true;
_process.Exited += new EventHandler(Process_Exited);
_process.StartInfo = myProcessStartInfo;

Затем по мере необходимости процесс запускается. Может быть запущен разными звонками ..
В настоящее время этот оператор запуска находится в методе, который вызывается из множества мест.

 _process.Start();

Что я хотел бы выяснить, если сценарий php уже запущен?

Что я пробовал до сих пор:

bool isRunning = Process.GetProcessesByName(_process.ProcessName).Length > 0;

Однако при отладке я вижу, что _process.ProcessName выдает исключение (InvalidOperationException)

С уважением,
Fiona

-1

Решение

Установите переменную (например, логическое значение) перед запуском процесса и сбросьте ее при выходе из процесса.

1

Другие решения

Других решений пока нет …