title: How to find which error has caused pm2 to restart
body: <p>I'm running a Node.js <a href="https://github.com/puppeteer/puppeteer" rel="nofollow noreferrer">puppeteer</a> script with <a href="https://github.com/Unitech/pm2" rel="nofollow noreferrer">pm2</a>.
  It's important to keep this process stable. After 2 days of work I see 2 restarts in my pm2 stats.</p>
  <p>I want to find out what is causing the restarts. In my error logs I see 3 main errors:</p>
  <pre><code>Error: Page crashed (puppeteer )
  Error: Quit inactivity timeout (mysql)
  or: Timed out after 30000 ms while trying to connect to Chrome! (puppeteer )
  </code></pre>
  <p>Here is my error log (I've only left the first error's full stack data, since the similar errors have the same stack)</p>
  <pre><code>Error: Page crashed!
      at Page._onTargetCrashed (/home/mysite/domains/mysite.xyz/laravel/robots/node_modules/puppeteer/lib/Page.js:156:24)
      at CDPSession.Page.client.on.event (/home/mysite/domains/mysite.xyz/laravel/robots/node_modules/puppeteer/lib/Page.js:132:56)
      at CDPSession.emit (events.js:198:13)
      at CDPSession._onMessage (/home/mysite/domains/mysite.xyz/laravel/robots/node_modules/puppeteer/lib/Connection.js:232:12)
      at Connection._onMessage (/home/mysite/domains/mysite.xyz/laravel/robots/node_modules/puppeteer/lib/Connection.js:119:19)
      at WebSocket.emit (events.js:198:13)
      at Receiver.receiverOnMessage (/home/mysite/domains/mysite.xyz/laravel/robots/node_modules/ws/lib/websocket.js:720:20)
      at Receiver.emit (events.js:198:13)
      at Receiver.dataMessage (/home/mysite/domains/mysite.xyz/laravel/robots/node_modules/ws/lib/receiver.js:414:14)
      at Receiver.getData (/home/mysite/domains/mysite.xyz/laravel/robots/node_modules/ws/lib/receiver.js:346:17)
  
  Error: Page crashed!
  Error: Page crashed!
  Error: Page crashed!
  Error: Page crashed!
  { Error: Quit inactivity timeout
      at Quit.&lt;anonymous&gt; (/home/mysite/domains/mysite.xyz/laravel/robots/node_modules/mysql/lib/protocol/Protocol.js:163:17)
      at Quit.emit (events.js:198:13)
      at Quit._onTimeout (/home/mysite/domains/mysite.xyz/laravel/robots/node_modules/mysql/lib/protocol/sequences/Sequence.js:124:8)
      at Timer._onTimeout (/home/mysite/domains/mysite.xyz/laravel/robots/node_modules/mysql/lib/protocol/Timer.js:32:23)
      at ontimeout (timers.js:436:11)
      at tryOnTimeout (timers.js:300:5)
      at listOnTimeout (timers.js:263:5)
      at Timer.processTimers (timers.js:223:10)
    code: 'PROTOCOL_SEQUENCE_TIMEOUT',
    fatal: true,
    timeout: 30000 }
  { Error: Quit inactivity timeout}
  Error: Timed out after 30000 ms while trying to connect to Chrome! The only Chrome revision guaranteed to work is r564778
      at Timeout.onTimeout (/home/mysite/domains/mysite.xyz/laravel/robots/node_modules/puppeteer/lib/Launcher.js:296:14)
      at ontimeout (timers.js:436:11)
      at tryOnTimeout (timers.js:300:5)
      at listOnTimeout (timers.js:263:5)
      at Timer.processTimers (timers.js:223:10)
  Error: Timed out after 30000 ms while trying to connect to Chrome! The only Chrome revision guaranteed to work is r564778
  Error: Timed out after 30000 ms while trying to connect to Chrome! The only Chrome revision guaranteed to work is r564778
  </code></pre>
  <p>How can I find out which error has caused the restart?</p>
  <p><strong>p.s.: Guys I've already posted the logs in my question, I know how to check the logs! Please read the question carefully!</strong></p>