Почему метод Process.Start отрабатывает с ошибками?

Не могу понять, почему не отрабатывает метод Process.Start, выпрыгивает системная ошибка при его вызове.

в консоли вызываю пинг

comp@comp0:~$ ping -c 5  www.ya.ru
PING ya.ru (87.250.250.242) 56(84) bytes of data.
64 bytes from ya.ru (87.250.250.242): icmp_seq=1 ttl=55 time=4.43 ms
64 bytes from ya.ru (87.250.250.242): icmp_seq=2 ttl=55 time=4.30 ms
64 bytes from ya.ru (87.250.250.242): icmp_seq=3 ttl=55 time=4.32 ms
64 bytes from ya.ru (87.250.250.242): icmp_seq=4 ttl=55 time=4.19 ms
64 bytes from ya.ru (87.250.250.242): icmp_seq=5 ttl=55 time=4.20 ms

--- ya.ru ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 4.193/4.293/4.439/0.098 ms

Всё отрабатывает безупречно.

Делаю в коде:

using System;
using System.Text;
using System.Threading;

using System.Diagnostics;
using System.ComponentModel;


class TrimTram1
{
   static void Main()
   {
      // ---
      string tes = "ping -c 5 www.ya.ru";
      Process.Start(tes);
      // ---
   }
}

Вот вывод:

comp@comp0:~/Qt_project/TCP_IP$ mono tehn4.exe 
gio: file:///home/comp/Qt_project/TCP_IP/ping%20-c%205%20www.ya.ru: Ошибка при получении информации о файле «/home/comp/Qt_project/TCP_IP/ping -c 5 www.ya.ru»: Нет такого файла или каталога

Unhandled Exception:
System.ComponentModel.Win32Exception (0x80004005): Cannot find the specified file
  at System.Diagnostics.Process.StartWithShellExecuteEx (System.Diagnostics.ProcessStartInfo startInfo) [0x00102] in <2703bbaa0a6e4686b6033c2dddb1a363>:0 
  at System.Diagnostics.Process.Start () [0x00032] in <2703bbaa0a6e4686b6033c2dddb1a363>:0 
  at (wrapper remoting-invoke-with-check) System.Diagnostics.Process.Start()
  at System.Diagnostics.Process.Start (System.Diagnostics.ProcessStartInfo startInfo) [0x0001b] in <2703bbaa0a6e4686b6033c2dddb1a363>:0 
  at System.Diagnostics.Process.Start (System.String fileName) [0x00006] in <2703bbaa0a6e4686b6033c2dddb1a363>:0 
  at TrimTram1.Main () [0x0006c] in <06daeafc853b4bc4970944168b738ba3>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.ComponentModel.Win32Exception (0x80004005): Cannot find the specified file
  at System.Diagnostics.Process.StartWithShellExecuteEx (System.Diagnostics.ProcessStartInfo startInfo) [0x00102] in <2703bbaa0a6e4686b6033c2dddb1a363>:0 
  at System.Diagnostics.Process.Start () [0x00032] in <2703bbaa0a6e4686b6033c2dddb1a363>:0 
  at (wrapper remoting-invoke-with-check) System.Diagnostics.Process.Start()
  at System.Diagnostics.Process.Start (System.Diagnostics.ProcessStartInfo startInfo) [0x0001b] in <2703bbaa0a6e4686b6033c2dddb1a363>:0 
  at System.Diagnostics.Process.Start (System.String fileName) [0x00006] in <2703bbaa0a6e4686b6033c2dddb1a363>:0 
  at TrimTram1.Main () [0x0006c] in <06daeafc853b4bc4970944168b738ba3>:0 

Суть ошибки совершенно не ясна


Можете хотя бы посоветовать, куда копать и есть ли книги по C# в Linux


Ответы (1 шт):

Автор решения: MSDN.WhiteKnight

Перегрузка Process.Start(string) запускает процесс по имени файла. Чтобы запустить команду с параметрами, нужно использовать другую перегрузку:

Process.Start("ping","-c 5 www.ya.ru");
→ Ссылка