进程启动后立即停止

Process stops immediately after start

希望你能帮助我。我正在使用 MonoDevelop 在 Raspberry Pi 上编码。

我想用 C# 执行 python 脚本并从中读取。

class Program 
{
    public static void Main(string[] args)
    {
        Process p = new Process();
        p.OutputDataReceived += new DataReceivedEventHandler(OutputHandler);
        p.StartInfo.FileName = "sudo";
        p.StartInfo.Arguments = "python gpio.py";
        p.StartInfo.UseShellExecute = false;
        p.StartInfo.CreateNoWindow = true;
        p.StartInfo.RedirectStandardOutput = true;

        p.Start();
        p.BeginOutputReadLine();
        p.WaitForExit();
    }

    private static void OutputHandler(Object sender, DataReceivedEventArgs args) 
    {
        Console.WriteLine(args.Data);
    }
}

调试时我可以看到进程已经退出 Click for image

但是在 TaskManager 中我可以看到,进程仍然是 运行。 该脚本还控制 gpio 引脚。脚本控制引脚 (Led on/off),即使 "Process has exited" 也是如此。但是我没有从 redirectOutput 得到任何东西。

为什么进程启动后立即退出(脚本有一段时间为真,应该不会停止)?这是执行脚本的正确方法吗?
如果我从终端执行 Python 脚本,它工作正常。应该不是脚本错误。 如果我开始一个过程,例如文件名 "libreoffice",它也有效。

脚本位于“/bin/Debug/”(文件夹)中的项目文件夹中 为任何人设置执行权限。

谢谢,
问候

正如@Gusman 所说,问题出在 sudo 上。按照建议,我现在使用 DLL 来访问 GPIO 引脚。即使 Raspberry Pi 不完全支持。