http://localhost:8086에 접속하면 1초 후 콘솔에 워커가 종료되었다는 메시지가 뜹니다. 여섯 번 새로 고침을 하면 모든 워커가 종료되어 서버가 응답하지 않습니다.

    콘솔

    16136번 워커가 종료되었습니다.
    code 1 signal null
    17272번 워커가 종료되었습니다.
    code 1 signal null
    16452번 워커가 종료되었습니다.
    code 1 signal null
    9004번 워커가 종료되었습니다.
    code 1 signal null
    11040번 워커가 종료되었습니다.
    code 1 signal null
    7368번 워커가 종료되었습니다.
    code 1 signal null

    코드(code)는 process.exit의 인수로 넣어준 코드가 출력되고, 신호(signal)는 존재하는 경우 프로세스를 종료한 신호의 이름이 출력됩니다.

    워커 프로세스가 존재하기에 여섯 번까지는 오류가 발생해도 서버가 정상적으로 작동할 수 있다는 뜻입니다. 종료된 워커를 다시 켜면 오류가 발생해도 계속 버틸 수 있습니다. 다음과 같이 워커 프로세스가 종료되었을 때 새로 하나를 생성해봅시다.

    cluster.js

    ...
      cluster.on('exit', (worker, code, signal) => {
        console.log(`${worker.process.pid}번 워커가 종료되었습니다.`);
        console.log('code', code, 'signal', signal);
        cluster.fork();
      });
    ...

    콘솔

    28592번 워커가 종료되었습니다.
    code 1 signal null
    10520번 워커 실행
    10520번 워커가 종료되었습니다.
    code 1 signal null
    23248번 워커 실행
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.