繁体   English   中英

启动后过程立即停止

[英]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);
    }
}

在调试时,我可以看到进程已退出

但是在TaskManager中,我可以看到该进程仍在运行。 该脚本还控制gpio引脚。 即使“进程已退出”,脚本也会控制引脚(Led on / off)。 但是我没有从redirectOutput得到任何东西。

为什么进程在启动后立即退出(脚本有一段时间,它不应该停止)? 这是执行脚本的正确方法吗?
如果我从终端执行Python脚本,它将正常工作。 脚本不应该出错。 如果我启动一个进程,例如FileName“ libreoffice”,它也可以工作。

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

谢谢,
问候

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM