, 그것은 소리, 당신은 출력에 대해 신경 쓰지 않는다.
다른 프로세스를 실행하고 종료하는 것을 잊지 않고 잊어 버리거나 끝나면 걱정하지 않고 이미 사용중인 것은 무엇입니까 (spawn
).
당신이 원하는 경우 진정으로 파이어 앤 포겟 당신이 당신의 프로세스가 종료 될 때 자식 프로세스가 살해되지 않습니다 있도록 detached
옵션을 지정할 수 있습니다. 문서에서 :
옵션이 설정되면 하위 프로세스가 새 프로세스 그룹의 리더가됩니다. 이렇게하면 부모가 퇴장 한 후에도 자식이 계속 실행될 수 있습니다.
분명히 당신은뿐만 아니라 unref
에 있고, 더 아래를 내려다 보면서 :
기본적으로, 부모는 종료 분리 된 아이를 기다립니다. 부모가 주어진 자식을 기다리지 않게하려면 child.unref()
메서드를 사용하고 부모의 이벤트 루프는 자식을 참조 횟수에 포함하지 않습니다.
그리고 분명히 stdio
처리 :
장기 실행 프로세스를 시작합니다 detached
옵션을 사용하여, 그것이 stdio
구성으로 제공되지 않는 백그라운드에서 실행 유지되지 않습니다 과정 부모와 연결되어 있지 않습니다. 부모의 stdio가 상속되면 자식은 제어 터미널에 연결되어 있습니다.
그래서 :
spawn('node', ['./file.js'], {
detached: true,
stdio: [ 'ignore', 'ignore', 'ignore' ]
}).unref();
당신은 * 정말 * 기적을하고 싶어? ['exit' 이벤트]를 듣기보다는 (http://nodejs.org/api/all.html#all_event_exit_2)? 왜냐하면 당신은 그것으로부터'stdout'을 가지고 무엇인가를하고 싶어하는 것 같습니다. 동 기적으로 실행하면 해당 줄은 자식이 완료 될 때까지 실행되지 않습니다. * ... –
@ T.J.Crowder 응답을 원하지 않지만 서버가 응답을 기다리지 않습니다. 나는'stdout'을 기다리는 또 다른 예에서'stdout'을 가져갔습니다. 전체 모듈을 설치하지 않고도이 작업을 수행 할 수있는 더 나은 기능이 있습니까? – ThomasReggi
@ThomasReggi : 당신이 실제로 동기를 취하지 않길 원하는 것 같습니다. 내가 희망하는 답변을 추가했습니다. –