进程在启动后立即停止

本文关键字:启动 进程 | 更新日期: 2023-09-27 17:58:37

希望你能帮助我。我正在用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);
    }
}

调试时,我可以看到进程已退出点击查看图像

但在TaskManager中,我可以看到,该过程仍在运行。脚本还控制gpio引脚。脚本控制引脚(Led开/关),即使"进程已退出"。但是我没有从重定向输出中得到任何东西。

为什么进程在启动后立即退出(脚本有一段时间是真的。它不应该停止)?这是执行脚本的正确方式吗
如果我从终端执行Python脚本,它工作得很好。这不应该是脚本的错误。如果我启动一个进程,例如FileName"libreoffice",它也能工作。

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

谢谢,
问候

进程在启动后立即停止

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