รันคำสั่งเชลล์ด้วยโมโนบนราสเบียน

ฉันกำลังพยายามเชื่อมต่อคอนโทรลเลอร์ xbox 360 กับ Raspberry Pi โดยใช้ c# ในรูปแบบโมโน คำสั่งในการเชื่อมต่อคือ 'sudo xboxdrv' คำสั่งนี้ใช้งานได้หากฉันลองโดยตรงบน Raspberry Pi แต่เกิดข้อผิดพลาดเมื่อฉันลองจากแอปคอนโซลโมโน รหัสที่ฉันใช้:

var info = new ProcessStartInfo();
info.FileName = "sudo xboxdrv";

info.UseShellExecute = false;
info.CreateNoWindow = true;

info.RedirectStandardOutput = true;
info.RedirectStandardError = true;

var p = Process.Start(info);
p.WaitForExit();

Console.ReadLine();

ข้อผิดพลาดที่ฉันได้รับคือ 'ข้อผิดพลาดดั้งเดิม = ไม่พบไฟล์ที่ระบุ' ฉันคิดว่ามันมีบางอย่างเกี่ยวข้องกับ sudo แต่ถ้าไม่มี sudo โปรแกรมก็ไม่สามารถทำงานได้ และถ้าเป็นไปได้ ฉันไม่ต้องการทำให้ผู้ใช้รูทเป็นผู้ใช้


person pieter_dv    schedule 05.10.2013    source แหล่งที่มา


คำตอบ (1)


sudo xboxdrv ไม่ใช่ชื่อไฟล์ แต่เป็นคำสั่งที่มีอาร์กิวเมนต์ sudo คือชื่อไฟล์ xboxdrv คืออาร์กิวเมนต์

ดังนั้นรหัสของคุณควรเป็น:

var info = new ProcessStartInfo();
info.FileName = "sudo";
info.Arguments = "xboxdrv";

info.UseShellExecute = false;
info.CreateNoWindow = true;

info.RedirectStandardOutput = true;
info.RedirectStandardError = true;

var p = Process.Start(info);
p.WaitForExit();

Console.ReadLine();
person user2737037    schedule 05.10.2013