>

--max-restarts 로 다시 시작 제한을 제한하기 위해 pm2를 시도했습니다.  하지만 그것은 작동하지 않으며 피곤한 min_uptime

sudo pm2 start server.js --max-restarts=5

그리고 나는 또한 yml 와 함께 시도  파일

apps:
  - name: node-mt
    script: server-socket.js
    watch: true
    max_restarts: 5
    min_uptime: 5000

그러나 응용 프로그램의 재시작을 제한하지는 않습니다.

pm2가 정기적으로 충돌하면 호스트 시스템과 메모리 사용량이 300mb에서 800mb에 도달했습니다.

앱이 실행될 때의 정상적인 상태입니다.

애플리케이션이 충돌했을 때. 그런 다음 그래프가 매우 높아집니다.

메모리 사용량이 많아서 호스트 충돌을 피하기 위해 최대 재시작을 중지해야합니다. 메모리 사용 플래그를 제한하고 싶지 않습니다.

  • 답변 # 1

    PM2 max_restarts  아네 와이즈 비즈  완벽하게 작동합니다. 둘의 비유를 이해해야합니다.

    문서에 따라

    와이즈 비즈

    즉, min_uptime이 5000이고 max_restarts가 5 인 경우 앱이 중단되고 5000ms 미만에서 5 번 다시 시작되면 앱이 오류로 간주됩니다. 5 초에 4 번 다시 시작하면 오류로 간주하지 않고 다시 시작합니다.

    이 구성으로 앱이 계속 다시 시작되면 앱이 5 초 안에 5 번 다시 시작되지 않음을 의미합니다. 가능한 해결책은 귀하의 경우를 위해 min_uptime에서 비교적 높은 수를 제공하거나 수동 테스트로 찾을 수 있습니다.

    노드 크론 앱에서 처음 만나서 다음 데모를 만들 때 이것을 이해하는 것이 좋습니다.

    app.js

    min_uptime
    
    

    ecosystem.config.json

    number of consecutive unstable restarts (less than 1sec(default) interval or custom time via min_uptime) before your app is considered errored and stop being restarted

    이것은 프로세스를 죽일 것입니다. 그러나 타임 아웃을 130+로 변경하면 (왜 그런지 모르겠지만 ms pricision 일 수도 있고 첫 번째 재시작까지 config를 고려하지 않을 수 있으므로 130 미만의 값에서 작동합니다) 작동하지 않습니다. 앱을 다시 시작하기 시작합니다.

    PM2 문서화

    P.S.

    setTimeout(function () { console.log('killed'); process.exit(1) }, 100);  문자열로도 줄 수 있습니다.

    { "apps" : [{ "name" : "api", "script" : "./app.js", "max_restarts" : 3, "min_uptime" : 300 }] }

  • 이전 null 객체 참조의 androidcontentContextgetSharedPreferences (javalangString, int) '
  • 다음 swift - 피보나치 수를 사용하여 황금 비율 계산