Запустить команды Bash в C# .net Core из приложения FounalLinux

Anonymous
Запустить команды Bash в C# .net Core из приложения Founal

Сообщение Anonymous »

Наше приложение состоит из службы, которая запускается на хосте Linux, в частности, в приложении yocto linux встроенное изображение. Реализация: < /p>
public static Result RunCommand(string command, bool wait = true)
{
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) return new Result() { ResultObject = "done" };

Result result = new Result();
using (Process proc = new())
{
proc.StartInfo.FileName = "/bin/bash";
proc.StartInfo.Arguments = "-c \" " + command + " \"";
proc.StartInfo.UseShellExecute = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.CreateNoWindow = true;

proc.Start();

proc.OutputDataReceived += Proc_OutputDataReceived;

result.ResultObject = proc.StandardOutput.ReadToEnd();
var error = proc.StandardError.ReadToEnd();
if (!string.IsNullOrWhiteSpace(error))
{
result.HasError = true;
result.ErrorMessage = error;
result.ResultCode = Enums.ResultCode.UnspecifiedError;
}
if (wait)
proc.WaitForExit();
proc.OutputDataReceived -= Proc_OutputDataReceived;
}
return result;
}
< /code>
Теперь проблема. Если я обращаюсь к приложению напрямую, например. Я предполагаю, что это связано с перенаправлением вывода, но у меня недостаточно знаний, и я знаю, где посмотреть, чтобы исправить это ...

Подробнее здесь: https://stackoverflow.com/questions/795 ... ground-app

Вернуться в «Linux»