Попытка проверить файл конфигурации Logstash. При запуске следующей строки из командной строки Windows:
C:> C:\Logstash\bin\logstash -t -f C:\Logstash\config\my.config
Затем я могу проверить результат, используя
echo %errorlevel%
, который возвращает 1 в случае синтаксической ошибки. Теперь я хочу сделать это программно в C #, поэтому:
using System.Diagnostics;
var logstashProcess = Process.Start(@"C:\Logstash\bin\logstash", @"-t -f C:\Logstash\config\my.config");
logstashProcess.WaitForExit();
return logstashProcess.ExitCode == 0;
Проблема в том, что он всегда возвращает true (код выхода равен нулю) - даже когда файл конфигурации полностью испорчен.
Мое предположение: поскольку C:\Logstash\bin\logstash
является сценарием оболочки, я получаю ноль - успешно работает сама оболочка, а не процесс Logstash (который выполняется внутри этого сценария с использованием jruby). Есть идеи о том, как получить реальное возвращаемое значение? Будет ли работать пакетный файл? (Я предпочитаю не добавлять дополнительный сценарий к вечеринке на этом этапе)