희망을 보내 주시면 감사하겠습니다. MonoDevelop가있는 라즈베리 파이를 코딩하고 있습니다.시작 후 즉시 프로세스가 중지됩니다.
나는 C#으로 파이썬 스크립트를 실행하고 그것을 읽고 싶다.
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
그러나 내가 볼 수있는 윈도우 작업 관리자에서 를 종료 된 것을 볼 수 있습니다. 또한 스크립트가 gpio 핀을 제어합니다. 그리고 스크립트는 "프로세스가 종료되었습니다"라고해도 핀 (Led on/off)을 제어합니다. 하지만 redirectOutput에서 아무것도 얻지 못합니다.
시작한 후 프로세스가 즉시 종료되는 이유는 무엇입니까? 이것이 스크립트를 실행하는 올바른 방법입니까?
터미널에서 파이썬 스크립트를 실행하면 올바르게 작동합니다. 스크립트에 오류가 없어야합니다. 예 : 프로세스를 시작한 경우 FileName "libreoffice", 그것도 작동합니다.
스크립트는 프로젝트 폴더의 "/ bin/Debug /"(폴더)에 있습니다. 실행 권한은 누구에게나 설정됩니다. @Gusman 말했듯이
감사합니다,
인사
sudo는 이미 sudo'ed를 실행 한 다음 파일 이름으로 python을 사용하고 매개 변수로 gpio.py를 사용하기 때문에 문제라고 생각합니다. 그러나 파이썬을 사용하여 gpio의 사용을 직접 제어하는 대신 C#을 사용하는 대신 파이썬을 사용하는 대신 파이썬을 사용하는 것이 좋습니다. https://github.com/gusmanb/BCM2835Managed – Gusman