У меня есть следующая команда терминала Linux:
ps -aef | grep -v grep | grep 'TestService.exe' | awk '{print $2}'
который отлично работает с терминала Linux и получает PID
требуемого процесса, например, вывод: 5532
. Тем не менее, я должен запустить верхнюю команду из приложения Mono C#
используя следующий код:
Process proc = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = "/bin/bash",
Arguments = string.Format("-c ps -aef | grep -v grep | grep '{0}' | awk '{{print $2}}'", p),
UseShellExecute = false,
RedirectStandardOutput = true,
CreateNoWindow = false
}
};
которая (почти) идентична команде, запущенной с терминала, однако вывод:
testuser+ 2184 2160 0 11:43 pts/0 00:00:03 /usr/local/bin/mono-sgen /home/testuser/testuser/MONO/cs/src/testApp/bin/Debug/TestService.exe
но мне нужен только столбец PID
, т. е. PID процесса. Почему выход отличается?