|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- # why-is-node-running
-
- Node is running but you don't know why? `why-is-node-running` is here to help you.
-
- ## Installation
-
- Node 8 and above:
-
- ```bash
- npm i why-is-node-running -g
- ```
-
- Earlier Node versions (no longer supported):
-
- ```bash
- npm i why-is-node-running@v1.x -g
- ```
-
- ## Usage
-
- ```js
- const log = require('why-is-node-running') // should be your first require
- const net = require('net')
-
- function createServer () {
- const server = net.createServer()
- setInterval(function () {}, 1000)
- server.listen(0)
- }
-
- createServer()
- createServer()
-
- setTimeout(function () {
- log() // logs out active handles that are keeping node running
- }, 100)
- ```
-
- Save the file as `example.js`, then execute:
-
- ```bash
- node ./example.js
- ```
-
- Here's the output:
-
- ```
- There are 5 handle(s) keeping the process running
-
- # Timeout
- /home/maf/dev/node_modules/why-is-node-running/example.js:6 - setInterval(function () {}, 1000)
- /home/maf/dev/node_modules/why-is-node-running/example.js:10 - createServer()
-
- # TCPSERVERWRAP
- /home/maf/dev/node_modules/why-is-node-running/example.js:7 - server.listen(0)
- /home/maf/dev/node_modules/why-is-node-running/example.js:10 - createServer()
-
- # Timeout
- /home/maf/dev/node_modules/why-is-node-running/example.js:6 - setInterval(function () {}, 1000)
- /home/maf/dev/node_modules/why-is-node-running/example.js:11 - createServer()
-
- # TCPSERVERWRAP
- /home/maf/dev/node_modules/why-is-node-running/example.js:7 - server.listen(0)
- /home/maf/dev/node_modules/why-is-node-running/example.js:11 - createServer()
-
- # Timeout
- /home/maf/dev/node_modules/why-is-node-running/example.js:13 - setTimeout(function () {
- ```
-
- **Important Note!**
- `unref`ed timers do not prevent the Node process from exiting. If you are running with Node v11.0.0 and above, `unref`ed timers will not be listed in the above list. Unfortunately, this is not supported in node versions below v11.0.0.
-
- ## CLI
-
- You can also run `why-is-node-running` as a standalone if you don't want to include it inside your code. Sending `SIGUSR1`/`SIGINFO` signal to the process will produce the log. (`Ctrl + T` on macOS and BSD systems)
-
- ```bash
- why-is-node-running /path/to/some/file.js
- ```
-
- ```
- probing module /path/to/some/file.js
- kill -SIGUSR1 31115 for logging
- ```
-
- To trigger the log:
-
- ```
- kill -SIGUSR1 31115
- ```
-
- ## Require CLI Option
-
- You can also use the node `-r` option to include `why-is-node-running`:
-
- ```bash
- node -r why-is-node-running/include /path/to/some/file.js
- ```
-
- The steps are otherwise the same as the above CLI section
-
- ## License
-
- MIT
|