자식 프로세스를 생성하려면 Bun.spawn() 을 사용합니다. 두 번째 bun 프로세스를 생성할 때 두 프로세스 간에 직접 프로세스 간 통신 (IPC) 채널을 열 수 있습니다.
NOTE
이 API 는 다른 `bun` 프로세스와만 호환됩니다. `process.execPath` 를 사용하여 현재 실행 중인 `bun` 실행 파일의 경로를 가져옵니다.ts
const child = Bun.spawn(["bun", "child.ts"], {
ipc(message) {
/**
* 하위 프로세스에서 받은 메시지
**/
},
});부모 프로세스는 반환된 Subprocess 인스턴스의 .send() 메서드를 사용하여 하위 프로세스에 메시지를 보낼 수 있습니다. 보내는 하위 프로세스에 대한 참조는 ipc 핸들러의 두 번째 인수에서도 사용할 수 있습니다.
ts
const childProc = Bun.spawn(["bun", "child.ts"], {
ipc(message, childProc) {
/**
* 하위 프로세스에서 받은 메시지
**/
childProc.send("자식에게 응답");
},
});
childProc.send("나는 너의 아버지다"); // 부모도 자식에게 메시지를 보낼 수 있습니다한편 자식 프로세스는 process.send() 를 사용하여 부모에게 메시지를 보내고 process.on("message") 로 메시지를 받을 수 있습니다. 이는 Node.js 의 child_process.fork() 에 사용되는 것과 동일한 API 입니다.
ts
process.send("문자열로 자식에서 보낸 인사");
process.send({ message: "객체로 자식에서 보낸 인사" });
process.on("message", message => {
// 부모의 메시지 출력
console.log(message);
});모든 메시지는 JSC serialize API 를 사용하여 직렬화되며 이는 postMessage 및 structuredClone 에서 지원하는 것과 동일한 전송 가능한 유형 집합 (문자열, 타입 배열, 스트림 및 객체 포함) 을 허용합니다.
ts
// 문자열 보내기
process.send("문자열로 자식에서 보낸 인사");
// 객체 보내기
process.send({ message: "객체로 자식에서 보낸 인사" });전체 문서는 문서 > API > 자식 프로세스 를 참조하세요.