2013-01-01 3 views
0

(난 그냥 파이썬 시작 해요로이 다소 모호한 경우 죄송합니다.) 난에서 양산 실행중인 명령 줄 노드 서버와 통신하는 SublimeText 2 인텔리 플러그인을 만드는 과정에있어Python에서 Node.js 프로세스를 계속 실행하려면 어떻게해야합니까?

Node.js 스크립트. 내가 신청하고자하는 노드 어플리케이션은 여기 https://github.com/clausreinke/typescript-tools에서 찾을 수 있습니다. (tss 명령이 호출되면 이 시작됩니다. 실행하려는 명령을 수신해야하는 자신의 하위 프로세스 명령 행 repl을 시작합니다.이 명령 행에 대한 명령을 얻는 것은 전적으로 다른 질문입니다. 질문 자체가 있습니다. 아직 해결하는)

을 통해 내가 성공적으로 "대화"는 노드 수 있습니다.

self.thread = NodeJS(args) 
self.thread.start() 
self.handle_thread(self.thread) 

우주 정거장 사용하여 호출하는

self.process = subprocess.Popen(self.args, 
       stdin = subprocess.PIPE, 
       stdout = subprocess.PIPE, 
       stderr = subprocess.STDOUT) 

self.result = self.process.communicate()[0] 

ue는 node.js 파일이 실행되면 파이프를 닫고 IO 프로세스를 종료한다는 것입니다. 내가 노드 응용 프로그램을 시작하려면 어떻게 백그라운드에서 실행 한 다음 "파이프"파이썬에서 연속적 명령 : 과정에 대한 후속 호출은이

ValueError: I/O operation on closed file 

내 질문은 반환?

내가

    는 Node.js를 서버를 시작할 때 플러그인이로드되고 난 다음 노드로 보내
  1. 키 입력을 들어 백그라운드에서 실행을 유지
  2. 싶습니다 (이미 작업)
  3. 실행중인 노드 프로세스의 출력을 파이썬으로 다시 파이핑 한 다음 출력을 표시하지만 스레드 또는 프로세스를 닫지 마십시오.

모든 단계 앞뒤로 연속되는 비동기식을 제외하고는 완전합니다.

어떤 도움

주시면 감사하겠습니다.

+1

'self.result = self.process.communicate()'파이프를 닫습니다. btw –

답변

1

Python에서 Unix 도메인 소켓 또는 메일 슬롯을 만들고 Node.js에서 연결하고 통신 채널로 사용하십시오.

관련 문제