child_process 예제

By August 2, 2019Uncategorized

위의 exec 스니펫은 단기 명령에 대해 작동합니다. 즉시 응답을 반환하는 프로세스입니다. 그러나, 나는 Yez를 사용할 계획입니다! Gulp 또는 Grunt 작업을 시작하고 출력을 모니터링하는 것과 같은 매우 복잡한 작업을 위해. 또는 Node.js 서버를 실행하고 로그를 보고 있습니다. 예를 들어 두 함수 모두 동기 식 대응이 있습니다. child_process.execSync의 예: 아키텍처, pid, 플랫폼 및 프로세스 버전을 인쇄하는 간단한 프로세스 예제를 살펴보겠습니다. 좋은 예, 정말 나를 도울. 당신은 스폰에 하나를 줄 수, 포크? 즉,이 execFile 예제의 인수와 일치할 것인가? 스폰 함수의 두 번째 인수를 사용하여 스폰 함수에 의해 실행되는 명령에 인수를 전달할 수 있습니다. 예를 들어 현재 디렉터리에서 찾기 명령을 -type f 인수(파일만 나열하기)로 실행하려면 해당 자식 프로세스 입력 스트림을 제어하고 출력 스트림을 들을 수 있습니다. 기본 OS 명령으로 전달될 인수를 제어할 수도 있으며 해당 명령의 출력으로 원하는 대로 수행할 수 있습니다. 예를 들어 Node.js 스트림을 사용하여 이러한 명령의 모든 입력 및 출력을 표시할 수 있으므로 한 명령의 출력을 다른 명령으로 다른 명령으로 파이프할 수 있습니다.

execFile은 응용 프로그램을 실행하고 출력을 얻어야 할 때 사용됩니다. 예를 들어 execFile을 사용하여 ImageMagick와 같은 이미지 처리 응용 프로그램을 실행하여 PNG에서 JPG 형식으로 이미지를 변환할 수 있으며 성공 여부에 대해서만 신경을 쓰겠습니다. execFile 외부 응용 프로그램이 많은 양의 데이터를 생성하고 실시간으로 해당 데이터를 사용해야 하는 경우 사용해서는 안 됩니다. 우리는 또한 우리가 리눅스 명령으로 할 수있는 것처럼, 서로 여러 프로세스의 표준 입력 / 출력을 파이프 할 수 있습니다. 예를 들어 찾기 명령의 stdout을 wc 명령의 stdin에 파이프하여 현재 디렉토리의 모든 파일을 계산할 수 있습니다. 외부 응용 프로그램이 있으면 콜백 함수가 호출됩니다. 콜백 함수에는 자식 프로세스의 stdout 및 stderr 출력이 포함됩니다. 외부 응용 프로그램의 출력 stdout은 내부적으로 버퍼링됩니다. Node.js에서 자식 프로세스를 실행하는 방법에는 exec 및 스폰이라는 두 가지 방법이 있습니다.

다음은 첫 번째 함수를 사용하는 예입니다: 스폰 함수는 새 프로세스에서 명령을 시작하고 이 명령을 사용하여 인수를 전달하는 데 사용할 수 있습니다. 예를 들어 pwd 명령을 실행하는 새 프로세스를 생성하는 코드는 다음과 같습니다. 여기에 이전 발견 | wc 예제는 exec 함수로 구현됩니다. 위의 예에서 자식 프로세스는 Linux에서 선, 단어 및 문자를 계산하는 wc 명령을 호출합니다. 그런 다음 메인 프로세스 stdin (읽을 수있는 스트림)을 자식 프로세스 stdin (쓰기 가능한 스트림)에 파이프합니다.