IronPython과 Mono를 시험해보고 싶습니다. 특히 sysadmin 작업을 수행합니다. 종종 OS 명령을 실행하는 것을 의미합니다. CPython에서는 이러한 작업에 서브 프로세스 모듈을 사용합니다. 그러나 IronPython (v2.0.1, Mono 2.4, Linux)에는 하위 프로세스 모듈이 없습니다. 'os'모듈조차없는 것 같습니다. 그래서 os.system()을 사용할 수 없습니다. IronPython에서 CPython에서 일반적으로 'subprocess'또는 'os.system()'을 사용하는 작업은 무엇입니까?IronPython/Mono에서 OS 쉘 명령을 실행하는 방법은 무엇입니까?
답변
답변을 찾았습니다. "IronPython Cookbook"덕택입니다. 하나가이 주제에 대한 자세한 정보를 찾을 수 있습니다 : 그것은 쉘에 IronPhython을 지원하지만 모노 아시다시피 않는 경우 http://www.ironpython.info/index.php/Launching_Sub-Processes
>>> from System.Diagnostics import Process
>>> p = Process()
>>> p.StartInfo.UseShellExecute = False
>>> p.StartInfo.RedirectStandardOutput = True
>>> p.StartInfo.FileName = 'uname'
>>> p.StartInfo.Arguments = '-m -r'
>>> p.Start()
True
>>> p.WaitForExit()
>>> p.StandardOutput.ReadToEnd()
'9.6.0 i386\n'
>>> p.ExitCode
0
>>>
대부분의 표준 OS 모듈은 ironpython에서 사용할 수 있습니다.
import sys
sys.path.append path('...pathtocpythonlib......')
import os
팁 주셔서 감사합니다. 하지만 IronyPython을 작동시키기 위해 CPython 배포를 번들하는 것을 피하고 싶습니다. 게다가 : sys.path를 CPython intallation에 필요한 디렉토리로 확장해도 '하위 프로세스'가 작동하지 않는 것 같습니다. 'fcntl'에 따라 다릅니다. 어떤 공유 라이브러리 (fcntl.so)입니다. – Cyberdrow
이 경우에는 .net System.Diagnostics.Process 클래스를 사용하는 것이 좋습니다. 아래 Cyberdrow의 답변을 참조하십시오. –
죄송 합니다만 당신이 해결했습니다. –
확실하지 .... 너무이 C# Interactive Shell을 고려하십시오.
C# 셸은 쉘에서 C# 명령을 실행하는 것과 반대의 문제가 있습니다. 모노에서 셸 명령 실행 – mat
여기에 일부 서브 프로세스 모듈 구현이 :
http://www.bitbucket.org/jdhardy/code/src/tip/subprocess.py
(이 때, 2010 년 6 월) 모듈은 (에서와 같이, 당신은 같은 파일 자체를 제공 할 수 STDIO 파이프를 리디렉션 지원됩니다 출력으로 채우거나 입력을 스트리밍하는 객체), 기본 사항 만 있으면 충분합니다.
- 1. C에서 쉘 명령을 실행하는 방법은 무엇입니까?
- 2. Android.mk 빌드 프로세스의 끝에서 쉘 명령을 실행하는 방법은 무엇입니까?
- 3. 원격 서버의 쉘 스크립트에서 java -jar 명령을 실행하는 방법은 무엇입니까?
- 4. 펄 루틴 내에서 쉘 명령을 실행하는 방법은 무엇입니까?
- 5. QT에서 .pro에서 컴파일이 완료된 후 쉘 명령을 실행하는 방법은 무엇입니까?
- 6. android에서 셸 명령을 실행하는 방법은 무엇입니까?
- 7. os. * 메소드를 루트로 실행하는 방법은 무엇입니까?
- 8. cygwin에서 쉘 스크립트를 실행하는 방법은 무엇입니까?
- 9. 파일을 쉘 스크립트로 만들고 실행하는 방법은 무엇입니까?
- 10. 쉘 객체 clsid에서 ShellExecute를 실행하는 방법은 무엇입니까?
- 11. 프로세스를 통해 delete 명령을 실행하는 방법은 무엇입니까?
- 12. javascript 함수에서 sql 명령을 실행하는 방법은 무엇입니까?
- 13. 코코아 앱에서이 명령을 실행하는 방법은 무엇입니까?
- 14. Java 응용 프로그램에서 명령을 실행하는 방법은 무엇입니까?
- 15. PHP에서 imagemagik 명령을 실행하는 방법은 무엇입니까?
- 16. MSI에서 with와 (과) 명령을 실행하는 방법은 무엇입니까?
- 17. NAnt에서 Windows remove 명령을 실행하는 방법은 무엇입니까?
- 18. nant 스크립트에서 7zip 명령을 실행하는 방법은 무엇입니까?
- 19. sudo 명령을 루트로 실행하는 방법은 무엇입니까?
- 20. Windows 배치 명령을 반복적으로 실행하는 방법은 무엇입니까?
- 21. Java 코드에서 Linux 명령을 실행하는 방법은 무엇입니까?
- 22. android에서 USSD 명령을 실행하는 방법은 무엇입니까?
- 23. Android 애플리케이션에서 terminal 명령을 실행하는 방법은 무엇입니까?
- 24. 명령 행에서 db2 sql 명령을 실행하는 방법은 무엇입니까?
- 25. 콘솔에서 Bash 명령을 입력하기 전이나 후에 명령을 실행하는 방법은 무엇입니까?
- 26. Mac OS X에서 clojure를 실행하는 방법은 무엇입니까?
- 27. Python에서 주어진 UID로 쉘 명령을 실행하십시오.
- 28. 플래시 파일 내부에서 쉘 명령을 호출하십시오.
- 29. 우분투에서 PHP에서 sqlite 명령을 실행하는 쉘 스크립트를 작성
- 30. Vim에 파일을 저장 한 후 쉘 명령을 자동으로 실행하는 방법은 무엇입니까?
주의 : "RedirectStandardOutput = True"및 "WaitForExit()"_can_을 설정하면 교착 상태가 발생할 수 있습니다. stdoutput 버퍼가 채워지면 프로세스는 "누군가"가 버퍼를 비울 때까지 기다리고, 버퍼를 비울 수있는 사람은 프로세스가 완료 될 때까지 대기합니다. – Nils