进程在启动后立即停止
本文关键字:启动 进程 | 更新日期: 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没有得到完全支持。