{"_id":"terminate","_rev":"3269303","name":"terminate","description":"Terminate a Node.js Process based on the Process ID","dist-tags":{"latest":"2.6.1"},"maintainers":[{"name":"nelsonic","email":"nodecoder@gmail.com"}],"time":{"modified":"2024-03-21T10:05:16.000Z","created":"2015-03-26T23:43:19.921Z","2.6.1":"2023-01-07T23:51:43.680Z","2.6.0":"2023-01-07T23:06:20.254Z","2.5.0":"2022-01-19T22:15:38.944Z","2.4.0":"2022-01-19T22:04:06.770Z","2.3.0":"2022-01-13T14:31:23.387Z","2.2.2":"2021-08-17T12:24:37.462Z","2.2.1":"2021-06-27T11:00:21.868Z","2.2.0":"2021-05-14T13:30:41.205Z","2.1.2":"2018-11-26T21:47:36.707Z","2.1.0":"2017-01-11T12:11:23.357Z","2.0.0":"2016-12-21T06:55:25.091Z","1.0.8":"2016-02-02T21:02:15.865Z","1.0.7":"2016-02-02T18:34:25.578Z","1.0.6":"2015-07-29T06:30:12.528Z","1.0.5":"2015-04-15T06:32:48.819Z","1.0.4":"2015-03-28T09:55:34.971Z","1.0.3":"2015-03-27T23:41:18.361Z","1.0.2":"2015-03-27T23:32:35.150Z","1.0.1":"2015-03-27T23:17:52.204Z","1.0.0":"2015-03-26T23:43:19.921Z"},"users":{"mrdain":true,"nmccready":true},"author":{"name":"@nelsonic","email":"contact.nelsonic@gmail.com","url":"https://github.com/nelsonic"},"repository":{"type":"git","url":"git+https://github.com/dwyl/terminate.git"},"versions":{"2.6.1":{"name":"terminate","version":"2.6.1","description":"Terminate a Node.js Process based on the Process ID","main":"terminate.js","types":"index.d.ts","scripts":{"test":"nyc --report=lcov --report=text ./node_modules/tape/bin/tape ./test/*.js","precoverage":"npm test","coverage":"nyc check-coverage","jshint":"./node_modules/jshint/bin/jshint -c .jshintrc --exclude-path .gitignore .","lint":"goodparts terminate.js"},"repository":{"type":"git","url":"git+https://github.com/dwyl/terminate.git"},"keywords":["Terminate","Kill","Node","Child","Process"],"author":{"name":"@nelsonic","email":"contact.nelsonic@gmail.com","url":"https://github.com/nelsonic"},"license":"GPL-2.0","bugs":{"url":"https://github.com/dwyl/terminate/issues"},"homepage":"https://github.com/dwyl/terminate","dependencies":{"ps-tree":"^1.2.0"},"devDependencies":{"chalk":"^1.1.1","goodparts":"1.3.0","jshint":"^2.9.6","nyc":"^15.1.0","pre-commit":"1.1.2","tape":"^4.4.0"},"pre-commit":["jshint","coverage"],"engines":{"node":">=12"},"gitHead":"1839006da28982721329b016d51ee66f1982849c","_id":"terminate@2.6.1","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"shasum":"99a4eb1647011b95f47401f6beb9f23e0362fbc0","size":13155,"noattachment":false,"key":"/terminate/-/terminate-2.6.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/terminate/download/terminate-2.6.1.tgz"},"_npmUser":{"name":"nelsonic","email":"contact.nelsonic@gmail.com"},"directories":{},"maintainers":[{"name":"nelsonic","email":"nodecoder@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/terminate_2.6.1_1673135503525_0.9974781892920315"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-01-07T23:51:47.414Z","publish_time":1673135503680,"_cnpm_publish_time":1673135503680},"2.6.0":{"name":"terminate","version":"2.6.0","description":"Terminate a Node.js Process based on the Process ID","main":"terminate.js","types":"index.d.ts","scripts":{"test":"nyc --report=lcov --report=text ./node_modules/tape/bin/tape ./test/*.js","precoverage":"npm test","coverage":"nyc check-coverage","jshint":"./node_modules/jshint/bin/jshint -c .jshintrc --exclude-path .gitignore .","lint":"goodparts terminate.js"},"repository":{"type":"git","url":"git+https://github.com/dwyl/terminate.git"},"keywords":["Terminate","Kill","Node","Child","Process"],"author":{"name":"@nelsonic","email":"contact.nelsonic@gmail.com","url":"https://github.com/nelsonic"},"license":"GPL-2.0","bugs":{"url":"https://github.com/dwyl/terminate/issues"},"homepage":"https://github.com/dwyl/terminate","dependencies":{"ps-tree":"^1.2.0"},"devDependencies":{"chalk":"^1.1.1","goodparts":"1.3.0","jshint":"^2.9.6","nyc":"^15.1.0","pre-commit":"1.1.2","tape":"^4.4.0"},"pre-commit":["jshint","coverage"],"engines":{"node":">=0.10"},"gitHead":"9ae49252456e7e6a31066d761fcfb9a1fe396cdc","_id":"terminate@2.6.0","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"shasum":"cef8afb58a3ba7c85d9c873adfc9580bcc229d48","size":13082,"noattachment":false,"key":"/terminate/-/terminate-2.6.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/terminate/download/terminate-2.6.0.tgz"},"_npmUser":{"name":"nelsonic","email":"contact.nelsonic@gmail.com"},"directories":{},"maintainers":[{"name":"nelsonic","email":"nodecoder@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/terminate_2.6.0_1673132780073_0.20141449170501913"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-01-07T23:06:26.697Z","publish_time":1673132780254,"_cnpm_publish_time":1673132780254},"2.5.0":{"name":"terminate","version":"2.5.0","description":"Terminate a Node.js Process based on the Process ID","main":"terminate.js","types":"index.d.ts","scripts":{"test":"nyc --report=lcov --report=text ./node_modules/tape/bin/tape ./test/*.js","precoverage":"npm test","coverage":"nyc check-coverage","jshint":"./node_modules/jshint/bin/jshint -c .jshintrc --exclude-path .gitignore .","lint":"goodparts terminate.js"},"repository":{"type":"git","url":"git+https://github.com/dwyl/terminate.git"},"keywords":["Terminate","Kill","Node","Child","Process"],"author":{"name":"@nelsonic","email":"contact.nelsonic@gmail.com","url":"https://github.com/nelsonic"},"license":"GPL-2.0","bugs":{"url":"https://github.com/dwyl/terminate/issues"},"homepage":"https://github.com/dwyl/terminate","dependencies":{"ps-tree":"^1.2.0"},"devDependencies":{"chalk":"^1.1.1","goodparts":"1.2.1","jshint":"^2.9.6","nyc":"^15.1.0","pre-commit":"1.1.2","tape":"^4.4.0"},"pre-commit":["jshint","coverage"],"engines":{"node":">=0.10"},"gitHead":"20e9a4b5c55a42d5b8676f0a6025ca2b139496cb","_id":"terminate@2.5.0","_nodeVersion":"14.15.5","_npmVersion":"6.14.11","dist":{"shasum":"c10f324ec1072f16fc6d028dd26ce7fe8f10bd26","size":80097,"noattachment":false,"key":"/terminate/-/terminate-2.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/terminate/download/terminate-2.5.0.tgz"},"_npmUser":{"name":"nelsonic","email":"contact.nelsonic@gmail.com"},"directories":{},"maintainers":[{"name":"nelsonic","email":"nodecoder@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/terminate_2.5.0_1642630538787_0.5115437888459138"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-01-19T22:15:48.058Z","publish_time":1642630538944,"_cnpm_publish_time":1642630538944},"2.4.0":{"name":"terminate","version":"2.4.0","description":"Terminate a Node.js Process based on the Process ID","main":"terminate.js","types":"index.d.ts","scripts":{"test":"nyc --report=lcov --report=text ./node_modules/tape/bin/tape ./test/*.js","precoverage":"npm test","coverage":"nyc check-coverage","jshint":"./node_modules/jshint/bin/jshint -c .jshintrc --exclude-path .gitignore .","lint":"goodparts terminate.js"},"repository":{"type":"git","url":"git+https://github.com/dwyl/terminate.git"},"keywords":["Terminate","Kill","Node","Child","Process"],"author":{"name":"@nelsonic","email":"contact.nelsonic@gmail.com","url":"https://github.com/nelsonic"},"license":"GPL-2.0","bugs":{"url":"https://github.com/dwyl/terminate/issues"},"homepage":"https://github.com/dwyl/terminate","dependencies":{"ps-tree":"^1.2.0"},"devDependencies":{"chalk":"^1.1.1","goodparts":"1.2.1","jshint":"^2.9.6","nyc":"^15.1.0","pre-commit":"1.1.2","tape":"^4.4.0"},"pre-commit":["jshint","coverage"],"engines":{"node":">=0.10"},"gitHead":"d9b7f0001a2db53317f331778b3d4550a8b66ca2","_id":"terminate@2.4.0","_nodeVersion":"14.15.5","_npmVersion":"6.14.11","dist":{"shasum":"45c31709b2360b413c051d8fd096cf968530300b","size":79546,"noattachment":false,"key":"/terminate/-/terminate-2.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/terminate/download/terminate-2.4.0.tgz"},"_npmUser":{"name":"nelsonic","email":"contact.nelsonic@gmail.com"},"directories":{},"maintainers":[{"name":"nelsonic","email":"nodecoder@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/terminate_2.4.0_1642629846547_0.9201338078385606"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-01-19T22:04:29.121Z","publish_time":1642629846770,"_cnpm_publish_time":1642629846770},"2.3.0":{"name":"terminate","version":"2.3.0","description":"Terminate a Node.js Process based on the Process ID","main":"terminate.js","types":"index.d.ts","scripts":{"test":"istanbul cover --report lcov --report text ./node_modules/tape/bin/tape ./test/*.js","coverage":"npm test && istanbul check-coverage --statements 100 --functions 100 --lines 100 --branches 100","jshint":"./node_modules/jshint/bin/jshint -c .jshintrc --exclude-path .gitignore .","lint":"goodparts terminate.js"},"repository":{"type":"git","url":"git+https://github.com/dwyl/terminate.git"},"keywords":["Terminate","Kill","Node","Child","Process"],"author":{"name":"@nelsonic","email":"contact.nelsonic@gmail.com","url":"https://github.com/nelsonic"},"license":"GPL-2.0","bugs":{"url":"https://github.com/dwyl/terminate/issues"},"homepage":"https://github.com/dwyl/terminate","dependencies":{"ps-tree":"^1.2.0"},"devDependencies":{"chalk":"^1.1.1","goodparts":"1.2.1","istanbul":"^0.4.5","jshint":"^2.9.6","pre-commit":"1.1.2","tape":"^4.4.0"},"pre-commit":["jshint","coverage"],"engines":{"node":">=0.10"},"gitHead":"0081cbadba5ff13a085ec57c7e72dc5c1210b057","_id":"terminate@2.3.0","_nodeVersion":"14.15.5","_npmVersion":"6.14.11","dist":{"shasum":"2a66fce1a7886b101e5271afe4d3eb079a4b3520","size":33412,"noattachment":false,"key":"/terminate/-/terminate-2.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/terminate/download/terminate-2.3.0.tgz"},"_npmUser":{"name":"nelsonic","email":"contact.nelsonic@gmail.com"},"directories":{},"maintainers":[{"name":"nelsonic","email":"nodecoder@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/terminate_2.3.0_1642084283193_0.906412101928147"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-01-13T14:31:31.142Z","publish_time":1642084283387,"_cnpm_publish_time":1642084283387},"2.2.2":{"name":"terminate","version":"2.2.2","description":"Terminate a Node.js Process based on the Process ID","main":"terminate.js","scripts":{"test":"istanbul cover --report lcov --report text ./node_modules/tape/bin/tape ./test/*.js","coverage":"npm test && istanbul check-coverage --statements 100 --functions 100 --lines 100 --branches 100","jshint":"./node_modules/jshint/bin/jshint -c .jshintrc --exclude-path .gitignore .","lint":"goodparts terminate.js"},"repository":{"type":"git","url":"git+https://github.com/dwyl/terminate.git"},"keywords":["Terminate","Kill","Node","Child","Process"],"author":{"name":"@nelsonic","email":"contact.nelsonic@gmail.com","url":"https://github.com/nelsonic"},"license":"GPL-2.0","bugs":{"url":"https://github.com/dwyl/terminate/issues"},"homepage":"https://github.com/dwyl/terminate","dependencies":{"ps-tree":"^1.2.0"},"devDependencies":{"chalk":"^1.1.1","goodparts":"1.2.1","istanbul":"^0.4.5","jshint":"^2.9.6","pre-commit":"1.1.2","tape":"^4.4.0"},"pre-commit":["jshint","coverage"],"engines":{"node":">=0.10"},"gitHead":"5e79c42a3fc04b41fac9a346d646da21f599c2c9","_id":"terminate@2.2.2","_nodeVersion":"14.15.5","_npmVersion":"6.14.11","dist":{"shasum":"5d85f719f5007205b9a1ba70f239e5ef993e121d","size":12672,"noattachment":false,"key":"/terminate/-/terminate-2.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/terminate/download/terminate-2.2.2.tgz"},"_npmUser":{"name":"nelsonic","email":"contact.nelsonic@gmail.com"},"directories":{},"maintainers":[{"name":"nelsonic","email":"nodecoder@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/terminate_2.2.2_1629203077247_0.4932343957675158"},"_hasShrinkwrap":false,"publish_time":1629203077462,"_cnpm_publish_time":1629203077462},"2.2.1":{"name":"terminate","version":"2.2.1","description":"Terminate a Node.js Process based on the Process ID","main":"terminate.js","scripts":{"test":"istanbul cover --report lcov --report text ./node_modules/tape/bin/tape ./test/*.js","coverage":"npm test && istanbul check-coverage --statements 100 --functions 100 --lines 100 --branches 100","jshint":"./node_modules/jshint/bin/jshint -c .jshintrc --exclude-path .gitignore .","lint":"goodparts terminate.js"},"repository":{"type":"git","url":"git+https://github.com/dwyl/terminate.git"},"keywords":["Terminate","Kill","Node","Child","Process"],"author":{"name":"@nelsonic","email":"contact.nelsonic@gmail.com","url":"https://github.com/nelsonic"},"license":"GPL-2.0","bugs":{"url":"https://github.com/dwyl/terminate/issues"},"homepage":"https://github.com/dwyl/terminate","dependencies":{"ps-tree":"^1.2.0"},"devDependencies":{"chalk":"^1.1.1","goodparts":"1.2.1","istanbul":"^0.4.5","jshint":"^2.9.6","pre-commit":"1.1.2","tape":"^4.4.0"},"pre-commit":["jshint","coverage"],"engines":{"node":">=0.10"},"gitHead":"c6eb3be57f74023a1e301db165ccdc6b9e5a8f90","_id":"terminate@2.2.1","_nodeVersion":"14.15.5","_npmVersion":"6.14.11","dist":{"shasum":"9fdc8cc536bd0ff2e81721e8c6e8c968a2fceae8","size":12672,"noattachment":false,"key":"/terminate/-/terminate-2.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/terminate/download/terminate-2.2.1.tgz"},"_npmUser":{"name":"nelsonic","email":"contact.nelsonic@gmail.com"},"directories":{},"maintainers":[{"name":"nelsonic","email":"nodecoder@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/terminate_2.2.1_1624791621701_0.785855002259596"},"_hasShrinkwrap":false,"publish_time":1624791621868,"_cnpm_publish_time":1624791621868},"2.2.0":{"name":"terminate","version":"2.2.0","description":"Terminate a Node.js Process based on the Process ID","main":"terminate.js","scripts":{"test":"istanbul cover --report lcov --report text ./node_modules/tape/bin/tape ./test/*.js","coverage":"npm test && istanbul check-coverage --statements 100 --functions 100 --lines 100 --branches 100","jshint":"./node_modules/jshint/bin/jshint -c .jshintrc --exclude-path .gitignore .","lint":"goodparts terminate.js"},"repository":{"type":"git","url":"git+https://github.com/dwyl/terminate.git"},"keywords":["Terminate","Kill","Node","Child","Process"],"author":{"name":"@nelsonic","email":"contact.nelsonic@gmail.com","url":"https://github.com/nelsonic"},"license":"GPL-2.0","bugs":{"url":"https://github.com/dwyl/terminate/issues"},"homepage":"https://github.com/dwyl/terminate","dependencies":{"ps-tree":"^1.2.0"},"devDependencies":{"chalk":"^1.1.1","goodparts":"1.2.1","istanbul":"^0.4.5","jshint":"^2.9.6","pre-commit":"1.1.2","tape":"^4.4.0"},"pre-commit":["jshint","coverage"],"engines":{"node":">=0.10"},"gitHead":"c6030569aa2d9e649f4975c316a5ad35734f961e","_id":"terminate@2.2.0","_nodeVersion":"14.15.5","_npmVersion":"6.14.11","dist":{"shasum":"f6c03b798038b824210876f7e03508a99fe10f5b","size":12670,"noattachment":false,"key":"/terminate/-/terminate-2.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/terminate/download/terminate-2.2.0.tgz"},"_npmUser":{"name":"nelsonic","email":"contact.nelsonic@gmail.com"},"directories":{},"maintainers":[{"name":"nelsonic","email":"nodecoder@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/terminate_2.2.0_1620999041012_0.11788258039738353"},"_hasShrinkwrap":false,"publish_time":1620999041205,"_cnpm_publish_time":1620999041205},"2.1.2":{"name":"terminate","version":"2.1.2","description":"Terminate a Node.js Process based on the Process ID","main":"terminate.js","scripts":{"test":"istanbul cover --report lcov --report text ./node_modules/tape/bin/tape ./test/*.js","coverage":"npm test && istanbul check-coverage --statements 100 --functions 100 --lines 100 --branches 100","jshint":"./node_modules/jshint/bin/jshint -c .jshintrc --exclude-path .gitignore .","lint":"goodparts terminate.js"},"repository":{"type":"git","url":"git+https://github.com/dwyl/terminate.git"},"keywords":["Terminate","Kill","Node","Child","Process"],"author":{"name":"@nelsonic","email":"contact.nelsonic@gmail.com","url":"https://github.com/nelsonic"},"license":"GPL-2.0","bugs":{"url":"https://github.com/dwyl/terminate/issues"},"homepage":"https://github.com/dwyl/terminate","dependencies":{"ps-tree":"^1.1.1"},"devDependencies":{"chalk":"^1.1.1","goodparts":"1.2.1","istanbul":"^0.4.5","jshint":"^2.9.1","pre-commit":"1.1.2","tape":"^4.4.0"},"pre-commit":["jshint","coverage"],"engines":{"node":">=0.10"},"gitHead":"8f32123431e5d1944a5817348c0d9bb3f189841a","_id":"terminate@2.1.2","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"nelsonic","email":"contact.nelsonic@gmail.com"},"dist":{"shasum":"3c78b9dc7559cb66af215c622cce906d415e2ef9","size":6928,"noattachment":false,"key":"/terminate/-/terminate-2.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/terminate/download/terminate-2.1.2.tgz"},"maintainers":[{"name":"nelsonic","email":"nodecoder@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/terminate_2.1.2_1543268856632_0.2695539599919017"},"_hasShrinkwrap":false,"publish_time":1543268856707,"_cnpm_publish_time":1543268856707},"2.1.0":{"name":"terminate","version":"2.1.0","description":"Terminate a Node.js Process based on the Process ID","main":"terminate.js","scripts":{"test":"istanbul cover --report lcov --report text ./node_modules/tape/bin/tape ./test/*.js","coverage":"npm test && istanbul check-coverage --statements 100 --functions 100 --lines 100 --branches 100","jshint":"./node_modules/jshint/bin/jshint -c .jshintrc --exclude-path .gitignore ."},"repository":{"type":"git","url":"git+https://github.com/dwyl/terminate.git"},"keywords":["Terminate","Kill","Node","Child","Process"],"author":{"name":"@nelsonic","email":"contact.nelsonic@gmail.com","url":"https://github.com/nelsonic"},"license":"GPL-2.0","bugs":{"url":"https://github.com/dwyl/terminate/issues"},"homepage":"https://github.com/dwyl/terminate","dependencies":{"ps-tree":"^1.1.0"},"devDependencies":{"chalk":"^1.1.1","istanbul":"^0.4.5","jshint":"^2.9.1","pre-commit":"1.1.2","tape":"^4.4.0"},"pre-commit":["jshint","coverage"],"engines":{"node":">=0.10"},"gitHead":"17fa0e38b7c25d387834a5fbe6a60e50a8e4e69e","_id":"terminate@2.1.0","_shasum":"a87ee424be01a1d28f2f301045043a5bcd679a05","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"nelsonic","email":"contact.nelsonic@gmail.com"},"dist":{"shasum":"a87ee424be01a1d28f2f301045043a5bcd679a05","size":7195,"noattachment":false,"key":"/terminate/-/terminate-2.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/terminate/download/terminate-2.1.0.tgz"},"maintainers":[{"name":"nelsonic","email":"nodecoder@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/terminate-2.1.0.tgz_1484136681215_0.38902153726667166"},"directories":{},"publish_time":1484136683357,"_cnpm_publish_time":1484136683357,"_hasShrinkwrap":false},"2.0.0":{"name":"terminate","version":"2.0.0","description":"Terminate a Node.js Process based on the Process ID","main":"terminate.js","scripts":{"test":"istanbul cover ./node_modules/tape/bin/tape ./test/*.js","coverage":"istanbul cover ./node_modules/tape/bin/tape ./test/*.js && istanbul check-coverage --statements 100 --functions 100 --lines 100 --branches 100","jshint":"./node_modules/jshint/bin/jshint -c .jshintrc --exclude-path .gitignore ."},"repository":{"type":"git","url":"git+https://github.com/dwyl/terminate.git"},"keywords":["Terminate","Kill","Node","Child","Process"],"author":{"name":"@nelsonic","email":"contact.nelsonic@gmail.com","url":"https://github.com/nelsonic"},"license":"GPL-2.0","bugs":{"url":"https://github.com/dwyl/terminate/issues"},"homepage":"https://github.com/dwyl/terminate","dependencies":{"ps-tree":"^1.1.0"},"devDependencies":{"chalk":"^1.1.1","istanbul":"^0.4.2","jshint":"^2.9.1","pre-commit":"1.1.2","tape":"^4.4.0"},"pre-commit":["jshint","coverage"],"engines":{"node":">=0.10"},"gitHead":"8179aa87868fc192b73334885215d5bb58f6765d","_id":"terminate@2.0.0","_shasum":"4a65f8790b1f40182947bb67b2c7069354b55a4c","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"nelsonic","email":"contact.nelsonic@gmail.com"},"dist":{"shasum":"4a65f8790b1f40182947bb67b2c7069354b55a4c","size":5941,"noattachment":false,"key":"/terminate/-/terminate-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/terminate/download/terminate-2.0.0.tgz"},"maintainers":[{"name":"nelsonic","email":"nodecoder@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/terminate-2.0.0.tgz_1482303323060_0.04055964550934732"},"directories":{},"publish_time":1482303325091,"_cnpm_publish_time":1482303325091,"_hasShrinkwrap":false},"1.0.8":{"name":"terminate","version":"1.0.8","description":"Terminate a Node.js Process based on the Process ID","main":"terminate.js","scripts":{"test":"istanbul cover ./node_modules/tape/bin/tape ./test/*.js","coverage":"istanbul cover ./node_modules/tape/bin/tape ./test/*.js && istanbul check-coverage --statements 100 --functions 100 --lines 100 --branches 100","jshint":"./node_modules/jshint/bin/jshint -c .jshintrc --exclude-path .gitignore ."},"repository":{"type":"git","url":"git+https://github.com/dwyl/terminate.git"},"keywords":["Terminate","Kill","Node","Child","Process"],"author":{"name":"@nelsonic","email":"contact.nelsonic@gmail.com","url":"https://github.com/nelsonic"},"license":"GPL-2.0","bugs":{"url":"https://github.com/dwyl/terminate/issues"},"homepage":"https://github.com/dwyl/terminate","dependencies":{"ps-tree":"1.0.1"},"devDependencies":{"chalk":"^1.0.0","codeclimate-test-reporter":"0.1.0","istanbul":"^0.3.17","jshint":"^2.8.0","pre-commit":"1.0.6","tape":"^4.0.0"},"pre-commit":["jshint","coverage","codeclimate"],"engines":{"node":">=0.10"},"gitHead":"a6d4404736e90967be7d29afd330113c371b8057","_id":"terminate@1.0.8","_shasum":"1703d50614b6ffba17d190698571f8f62b197c0c","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.3","_npmUser":{"name":"nelsonic","email":"contact.nelsonic@gmail.com"},"dist":{"shasum":"1703d50614b6ffba17d190698571f8f62b197c0c","size":5483,"noattachment":false,"key":"/terminate/-/terminate-1.0.8.tgz","tarball":"http://registry.cnpm.dingdandao.com/terminate/download/terminate-1.0.8.tgz"},"maintainers":[{"name":"nelsonic","email":"nodecoder@gmail.com"}],"_npmOperationalInternal":{"host":"packages-6-west.internal.npmjs.com","tmp":"tmp/terminate-1.0.8.tgz_1454446933274_0.20826554181985557"},"directories":{},"publish_time":1454446935865,"_cnpm_publish_time":1454446935865,"_hasShrinkwrap":false},"1.0.7":{"name":"terminate","version":"1.0.7","description":"Terminate a Node.js Process based on the Process ID","main":"terminate.js","scripts":{"test":"istanbul cover ./node_modules/tape/bin/tape ./test/*.js","coverage":"istanbul cover ./node_modules/tape/bin/tape ./test/*.js && istanbul check-coverage --statements 100 --functions 100 --lines 100 --branches 100","jshint":"./node_modules/jshint/bin/jshint -c .jshintrc --exclude-path .gitignore .","codeclimate":"CODECLIMATE_REPO_TOKEN=183ff75bccfef4ec435b9e9cf1c13e409b0a826774e30b2ef2ae8d449caa40e8 ./node_modules/codeclimate-test-reporter/bin/codeclimate.js < ./coverage/lcov.info"},"repository":{"type":"git","url":"git+https://github.com/dwyl/terminate.git"},"keywords":["Terminate","Kill","Node","Child","Process"],"author":{"name":"@nelsonic","email":"contact.nelsonic@gmail.com","url":"https://github.com/nelsonic"},"license":"GPL-2.0","bugs":{"url":"https://github.com/dwyl/terminate/issues"},"homepage":"https://github.com/dwyl/terminate","dependencies":{"ps-tree":"1.0.0"},"devDependencies":{"chalk":"^1.0.0","codeclimate-test-reporter":"0.1.0","istanbul":"^0.3.17","jshint":"^2.8.0","pre-commit":"1.0.6","tape":"^4.0.0"},"pre-commit":["jshint","coverage","codeclimate"],"engines":{"node":">=0.10"},"gitHead":"c0f810d8e838ab274ddf1091850d743b8b9deda7","_id":"terminate@1.0.7","_shasum":"ea06c5d26ed67e108ac5e1d59c751ea4c92c9ab0","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.3","_npmUser":{"name":"nelsonic","email":"contact.nelsonic@gmail.com"},"dist":{"shasum":"ea06c5d26ed67e108ac5e1d59c751ea4c92c9ab0","size":5499,"noattachment":false,"key":"/terminate/-/terminate-1.0.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/terminate/download/terminate-1.0.7.tgz"},"maintainers":[{"name":"nelsonic","email":"nodecoder@gmail.com"}],"_npmOperationalInternal":{"host":"packages-5-east.internal.npmjs.com","tmp":"tmp/terminate-1.0.7.tgz_1454438064490_0.005350705469027162"},"directories":{},"publish_time":1454438065578,"_cnpm_publish_time":1454438065578,"_hasShrinkwrap":false},"1.0.6":{"name":"terminate","version":"1.0.6","description":"Terminate a Node.js Process based on the Process ID","main":"terminate.js","scripts":{"test":"istanbul cover ./node_modules/tape/bin/tape ./test/*.js","coverage":"istanbul cover ./node_modules/tape/bin/tape ./test/*.js && istanbul check-coverage --statements 100 --functions 100 --lines 100 --branches 100","jshint":"./node_modules/jshint/bin/jshint -c .jshintrc --exclude-path .gitignore .","codeclimate":"CODECLIMATE_REPO_TOKEN=183ff75bccfef4ec435b9e9cf1c13e409b0a826774e30b2ef2ae8d449caa40e8 ./node_modules/codeclimate-test-reporter/bin/codeclimate.js < ./coverage/lcov.info"},"repository":{"type":"git","url":"git+https://github.com/dwyl/terminate.git"},"keywords":["Terminate","Kill","Node","Child","Process"],"author":{"name":"@nelsonic","email":"contact.nelsonic@gmail.com","url":"https://github.com/nelsonic"},"license":"GPL-2.0","bugs":{"url":"https://github.com/dwyl/terminate/issues"},"homepage":"https://github.com/dwyl/terminate","dependencies":{"ps-tree":"1.0.0"},"devDependencies":{"chalk":"^1.0.0","codeclimate-test-reporter":"0.1.0","istanbul":"^0.3.17","jshint":"^2.8.0","pre-commit":"1.0.6","tape":"^4.0.0"},"pre-commit":["jshint","coverage","codeclimate"],"engines":{"node":">=0.10"},"gitHead":"4920b009e766c3f212283028bc06a14f2e668cf5","_id":"terminate@1.0.6","_shasum":"db69c0bfd3122a944887bf8974c2ab24463b9a37","_from":".","_npmVersion":"2.10.1","_nodeVersion":"0.12.4","_npmUser":{"name":"nelsonic","email":"contact.nelsonic@gmail.com"},"dist":{"shasum":"db69c0bfd3122a944887bf8974c2ab24463b9a37","size":5520,"noattachment":false,"key":"/terminate/-/terminate-1.0.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/terminate/download/terminate-1.0.6.tgz"},"maintainers":[{"name":"nelsonic","email":"nodecoder@gmail.com"}],"directories":{},"publish_time":1438151412528,"_cnpm_publish_time":1438151412528,"_hasShrinkwrap":false},"1.0.5":{"name":"terminate","version":"1.0.5","description":"Terminate a Node.js Process based on the Process ID","main":"terminate.js","scripts":{"test":"istanbul cover ./node_modules/tape/bin/tape ./test/*.js","coverage":"istanbul cover ./node_modules/tape/bin/tape ./test/*.js && istanbul check-coverage --statements 100 --functions 100 --lines 100 --branches 100","jshint":"./node_modules/jshint/bin/jshint -c .jshintrc --exclude-path .gitignore .","codeclimate":"CODECLIMATE_REPO_TOKEN=cb9cb09b16b317fb2d65ebf34df7039bb62976fe3cb3eadc71b4fd7991033c47 ./node_modules/codeclimate-test-reporter/bin/codeclimate.js < ./coverage/lcov.info"},"repository":{"type":"git","url":"https://github.com/nelsonic/terminate.git"},"keywords":["Terminate","Kill","Node","Child","Process"],"author":{"name":"@nelsonic","email":"contact.nelsonic@gmail.com","url":"https://github.com/nelsonic"},"license":"ISC","bugs":{"url":"https://github.com/nelsonic/terminate/issues"},"homepage":"https://github.com/nelsonic/terminate","dependencies":{"ps-tree":"1.0.0"},"devDependencies":{"chalk":"^1.0.0","codeclimate-test-reporter":"0.0.4","istanbul":"^0.3.13","jshint":"^2.7.0","pre-commit":"1.0.6","tape":"^4.0.0"},"pre-commit":["jshint","coverage","codeclimate"],"engines":{"node":">=0.10"},"gitHead":"f014899d0ed0826b5595231347a66b71c8e2fdfe","_id":"terminate@1.0.5","_shasum":"b730b77837246ffe8dfba3534703379443dcbe17","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.1","_npmUser":{"name":"nelsonic","email":"contact.nelsonic@gmail.com"},"maintainers":[{"name":"nelsonic","email":"nodecoder@gmail.com"}],"dist":{"shasum":"b730b77837246ffe8dfba3534703379443dcbe17","size":5554,"noattachment":false,"key":"/terminate/-/terminate-1.0.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/terminate/download/terminate-1.0.5.tgz"},"directories":{},"publish_time":1429079568819,"_cnpm_publish_time":1429079568819,"_hasShrinkwrap":false},"1.0.4":{"name":"terminate","version":"1.0.4","description":"Terminate a Node.js Process based on the Process ID","main":"terminate.js","scripts":{"test":"istanbul cover ./node_modules/tape/bin/tape ./test/*.js","coverage":"istanbul cover ./node_modules/tape/bin/tape ./test/*.js && ./node_modules/.bin/istanbul check-coverage --statements 100 --functions 100 --lines 100 --branches 100","jshint":"./node_modules/jshint/bin/jshint -c .jshintrc --exclude-path .gitignore .","codeclimate":"CODECLIMATE_REPO_TOKEN=cb9cb09b16b317fb2d65ebf34df7039bb62976fe3cb3eadc71b4fd7991033c47 ./node_modules/codeclimate-test-reporter/bin/codeclimate.js < ./coverage/lcov.info"},"repository":{"type":"git","url":"https://github.com/nelsonic/terminate.git"},"keywords":["Terminate","Kill","Node","Child","Process"],"author":{"name":"@nelsonic","email":"contact.nelsonic@gmail.com","url":"https://github.com/nelsonic"},"license":"ISC","bugs":{"url":"https://github.com/nelsonic/terminate/issues"},"homepage":"https://github.com/nelsonic/terminate","devDependencies":{"chalk":"^1.0.0","codeclimate-test-reporter":"0.0.4","istanbul":"^0.3.11","jshint":"^2.6.3","pre-commit":"1.0.6","tape":"^3.5.0"},"pre-commit":["jshint","coverage","codeclimate"],"engines":{"node":">=0.10"},"dependencies":{"ps-tree":"0.0.3"},"gitHead":"c42700d91e8bbd93fd21fcdfe7b34076874a5574","_id":"terminate@1.0.4","_shasum":"533c6a6eb6f77d630ce867c5490086c98e81acff","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nelsonic","email":"contact.nelsonic@gmail.com"},"maintainers":[{"name":"nelsonic","email":"nodecoder@gmail.com"}],"dist":{"shasum":"533c6a6eb6f77d630ce867c5490086c98e81acff","size":5504,"noattachment":false,"key":"/terminate/-/terminate-1.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/terminate/download/terminate-1.0.4.tgz"},"directories":{},"publish_time":1427536534971,"_cnpm_publish_time":1427536534971,"_hasShrinkwrap":false},"1.0.3":{"name":"terminate","version":"1.0.3","description":"Terminate a Node.js Process based on the Process ID","main":"terminate.js","scripts":{"test":"istanbul cover ./node_modules/tape/bin/tape ./test/*.js","coverage":"istanbul cover ./node_modules/tape/bin/tape ./test/*.js && ./node_modules/.bin/istanbul check-coverage --statements 100 --functions 100 --lines 100 --branches 100","jshint":"./node_modules/jshint/bin/jshint -c .jshintrc --exclude-path .gitignore .","codeclimate":"CODECLIMATE_REPO_TOKEN=cb9cb09b16b317fb2d65ebf34df7039bb62976fe3cb3eadc71b4fd7991033c47 ./node_modules/codeclimate-test-reporter/bin/codeclimate.js < ./coverage/lcov.info"},"repository":{"type":"git","url":"https://github.com/nelsonic/terminate.git"},"keywords":["Terminate","Kill","Node","Child","Process"],"author":{"name":"@nelsonic","email":"contact.nelsonic@gmail.com","url":"https://github.com/nelsonic"},"license":"ISC","bugs":{"url":"https://github.com/nelsonic/terminate/issues"},"homepage":"https://github.com/nelsonic/terminate","devDependencies":{"chalk":"^1.0.0","codeclimate-test-reporter":"0.0.4","istanbul":"^0.3.4","jshint":"^2.5.10","pre-commit":"0.0.9","tape":"^3.0.3"},"pre-commit":["jshint","coverage","codeclimate"],"engines":{"node":">=0.10"},"dependencies":{"ps-tree":"0.0.3"},"gitHead":"2935fddc01a797e0c2448c55d09921f79b84bb56","_id":"terminate@1.0.3","_shasum":"eb1107e04552eb0bd309ac3c8fc33776cadadeb2","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nelsonic","email":"contact.nelsonic@gmail.com"},"maintainers":[{"name":"nelsonic","email":"nodecoder@gmail.com"}],"dist":{"shasum":"eb1107e04552eb0bd309ac3c8fc33776cadadeb2","size":4512,"noattachment":false,"key":"/terminate/-/terminate-1.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/terminate/download/terminate-1.0.3.tgz"},"directories":{},"publish_time":1427499678361,"_cnpm_publish_time":1427499678361,"_hasShrinkwrap":false},"1.0.2":{"name":"terminate","version":"1.0.2","description":"Terminate a Node.js Process based on the Process ID","main":"terminate.js","scripts":{"test":"istanbul cover ./node_modules/tape/bin/tape ./test/*.js","coverage":"istanbul cover ./node_modules/tape/bin/tape ./test/*.js && ./node_modules/.bin/istanbul check-coverage --statements 100 --functions 100 --lines 100 --branches 100","jshint":"./node_modules/jshint/bin/jshint -c .jshintrc --exclude-path .gitignore .","codeclimate":"CODECLIMATE_REPO_TOKEN=cb9cb09b16b317fb2d65ebf34df7039bb62976fe3cb3eadc71b4fd7991033c47 ./node_modules/codeclimate-test-reporter/bin/codeclimate.js < ./coverage/lcov.info"},"repository":{"type":"git","url":"https://github.com/nelsonic/terminate.git"},"keywords":["Terminate","Kill","Node","Child","Process"],"author":{"name":"@nelsonic","email":"contact.nelsonic@gmail.com","url":"https://github.com/nelsonic"},"license":"ISC","bugs":{"url":"https://github.com/nelsonic/terminate/issues"},"homepage":"https://github.com/nelsonic/terminate","devDependencies":{"chalk":"^1.0.0","codeclimate-test-reporter":"0.0.4","istanbul":"^0.3.4","jshint":"^2.5.10","pre-commit":"0.0.9","tape":"^3.0.3"},"pre-commit":["jshint","coverage","codeclimate"],"engines":{"node":">=0.10"},"dependencies":{"ps-tree":"0.0.3"},"gitHead":"9686c29f8410b841a295fd211ae6f0ed85d8baa0","_id":"terminate@1.0.2","_shasum":"6c989103937a4fc3737b2ef0ce4c525201416bf7","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nelsonic","email":"contact.nelsonic@gmail.com"},"maintainers":[{"name":"nelsonic","email":"nodecoder@gmail.com"}],"dist":{"shasum":"6c989103937a4fc3737b2ef0ce4c525201416bf7","size":4539,"noattachment":false,"key":"/terminate/-/terminate-1.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/terminate/download/terminate-1.0.2.tgz"},"directories":{},"publish_time":1427499155150,"_cnpm_publish_time":1427499155150,"_hasShrinkwrap":false},"1.0.1":{"name":"terminate","version":"1.0.1","description":"Terminate a Node.js Process based on the Process ID","main":"terminate.js","scripts":{"test":"istanbul cover ./node_modules/tape/bin/tape ./test/*.js","coverage":"istanbul cover ./node_modules/tape/bin/tape ./test/*.js && ./node_modules/.bin/istanbul check-coverage --statements 100 --functions 100 --lines 100 --branches 100","jshint":"./node_modules/jshint/bin/jshint -c .jshintrc --exclude-path .gitignore .","codeclimate":"CODECLIMATE_REPO_TOKEN=cb9cb09b16b317fb2d65ebf34df7039bb62976fe3cb3eadc71b4fd7991033c47 ./node_modules/codeclimate-test-reporter/bin/codeclimate.js < ./coverage/lcov.info"},"repository":{"type":"git","url":"https://github.com/nelsonic/terminate.git"},"keywords":["Terminate","Kill","Node","Child","Process"],"author":{"name":"@nelsonic","email":"contact.nelsonic@gmail.com","url":"https://github.com/nelsonic"},"license":"ISC","bugs":{"url":"https://github.com/nelsonic/terminate/issues"},"homepage":"https://github.com/nelsonic/terminate","devDependencies":{"chalk":"^1.0.0","codeclimate-test-reporter":"0.0.4","istanbul":"^0.3.4","jshint":"^2.5.10","pre-commit":"0.0.9","tape":"^3.0.3"},"pre-commit":["jshint","coverage","codeclimate"],"engines":{"node":">=0.10"},"dependencies":{"ps-tree":"0.0.3"},"gitHead":"ccd481287643359fc6df1b36d3cead5ba14c969f","_id":"terminate@1.0.1","_shasum":"fc9f40450b904e51c012582f54f6fb3528d624f0","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nelsonic","email":"contact.nelsonic@gmail.com"},"maintainers":[{"name":"nelsonic","email":"nodecoder@gmail.com"}],"dist":{"shasum":"fc9f40450b904e51c012582f54f6fb3528d624f0","size":4240,"noattachment":false,"key":"/terminate/-/terminate-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/terminate/download/terminate-1.0.1.tgz"},"directories":{},"publish_time":1427498272204,"_cnpm_publish_time":1427498272204,"_hasShrinkwrap":false},"1.0.0":{"name":"terminate","version":"1.0.0","description":"Terminate a Node.js Process based on the Process ID","main":"terminate.js","scripts":{"test":"tape"},"repository":{"type":"git","url":"https://github.com/nelsonic/terminate.git"},"keywords":["Terminate","Kill","Node","Child","Process"],"author":{"name":"@nelsonic","email":"contact.nelsonic@gmail.com","url":"https://github.com/nelsonic"},"license":"ISC","bugs":{"url":"https://github.com/nelsonic/terminate/issues"},"homepage":"https://github.com/nelsonic/terminate","gitHead":"b1621ce25097589b7b8d7ac4fea50cd2eecd3720","_id":"terminate@1.0.0","_shasum":"37b6a9048506ed6f63f2d47f18af7ed5294bafe8","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"nelsonic","email":"contact.nelsonic@gmail.com"},"maintainers":[{"name":"nelsonic","email":"nodecoder@gmail.com"}],"dist":{"shasum":"37b6a9048506ed6f63f2d47f18af7ed5294bafe8","size":1485,"noattachment":false,"key":"/terminate/-/terminate-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/terminate/download/terminate-1.0.0.tgz"},"directories":{},"publish_time":1427413399921,"_cnpm_publish_time":1427413399921,"_hasShrinkwrap":false}},"readme":"<div align=\"center\">\n\n# `terminate`\n\nA minimalist yet *reliable* way to **Terminate** a **`Node.js Process`** (and ***all Child Processes***) by **Process ID**.\n\n![terminate-the-node-process-final](https://cloud.githubusercontent.com/assets/194400/6859420/a3b63f3c-d410-11e4-91bb-ad6b607cc465.png)\n\n![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/dwyl/terminate/ci.yml?label=build&style=flat-square&branch=main)\n[![codecov.io](https://img.shields.io/codecov/c/github/dwyl/terminate/main.svg?style=flat-square)](http://codecov.io/github/dwyl/terminate?branch=main)\n[![npm version](https://badge.fury.io/js/terminate.svg?style=flat-square)](https://badge.fury.io/js/terminate)\n[![Node.js Version](https://img.shields.io/node/v/terminate.svg?style=flat-square)](https://nodejs.org/download)\n[![JavaScript Style Guide: Good Parts](https://img.shields.io/badge/code%20style-goodparts-brightgreen.svg?style=flat-square)](https://github.com/dwyl/goodparts \"JavaScript The Good Parts\")\n[![HitCount](http://hits.dwyl.com/dwyl/terminate.svg)](http://hits.dwyl.com/dwyl/terminate)\n[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat-square)](https://github.com/dwyl/hapi-auth-jwt2/issues)\n\n</div>\n\n## Usage\n\n### Install from NPM\n\n```sh\nnpm install terminate --save\n```\n\n### In your script\n\n```js\nconst terminate = require('terminate');\n\nterminate(process.pid, function (err) {\n  if (err) { // you will get an error if you did not supply a valid process.pid\n    console.log('Oopsy:', err); // handle errors in your preferred way.\n  }\n  else {\n    console.log('done'); // terminating the Processes succeeded.\n    // NOTE: The above won't be run in this example as the process itself will be killed before.\n  }\n});\n```\n\n### Usage\n\nAll the available parameters and their descriptions are viewable in the TypeScript definition file: [**`index.d.ts`**](./index.d.ts#L71).\n\n```ts\n// Function signature\nterminate(pid: number, signal?: string, opts?: TerminateOptions, callback?: DoneCallback): void\n\n// Function signature of the Promise version\nterminate(pid: number, signal?: string, opts?: TerminateOptions): Promise<void>\n```\n\n- `pid` - The Process ID you want to terminate.\n- `signal` - The signal to kill the processes with. Defaults to `\"SIGKILL\"` if it's empty or not defined.\n- `opts.pollInterval` - Interval to poll whether `pid` and all of the childs pids have been killed. Defaults to `500` (0.5s).\n- `opts.timeout` - Max time (in milliseconds) to wait for process to exit before timing out and calling back with an error. Defaults to `5000` (5s).\n- `callback` - The callback function to call when the termination is done. It has this signature: `(error: Error | null): void` whereas `error` will be `null` if the operation succeeds.\n\n### Promise API\n\nIf you are **using Node.js 8+**, you can load the Promise version importing the module `terminate/promise.js` like this:\n\n```js\nconst terminate = require('terminate/promise');\n\n(async () => {\n  try {\n    await terminate(process.pid);\n    console.log('done');\n  } catch (err) {\n    console.log('Oopsy:', err);\n  }\n})();\n```\n\n<br />\n\n# tl;dr\n\n## Why?\n\nIn our [***Faster***](https://github.com/ideaq/faster) project\nwe run the server using [**Child Process**](https://nodejs.org/api/child_process.html)(es).\nWhen we want to re-start the server,  \nwe needed to ensure the **process** (and any **Child Processes**)\nwere **Terminate**d before attempting to re-start.\n\n\n## *Prevents* Zombie Processes\n\nImagine you are running your Node.js app on a Multi-Core Processor\nand don't want to \"waste\" the CPU by only using *one* of those cores  \n(remember: one of Node's *selling points* is that its [single-process running on a single-core](https://stackoverflow.com/questions/17959663/)),\nyou can \"farm out\" tasks to the other cores using [**Child Process**](https://nodejs.org/api/child_process.html)(es)\n\nIf you then want to restart your app you *naively* (we did this!)\nterminate the \"main\" process and *expect* all the \"child\" processes to\nbe ended too.\n\nSadly this results in [***Zombie Processes***](https://stackoverflow.com/questions/27381163)\nwhich you would have to either *manually* kill or restart the machine/VM to clear.  \nInstead you need to *find* all the Process IDs for the child processes\nthat your app created and **terminate** those *before* you can re-start your app.\n\nUsing ***terminate*** you no longer have this problem.\n\n<br />\n\n## Dependencies [![Retire Status](https://img.shields.io/badge/security-no%20known%20vulnerabilities-brightgreen.svg?style=flat-square)](https://retire.insecurity.today/api/image?uri=https://raw.githubusercontent.com/dwyl/terminate/main/package.json)\n\nWhile researching how to get a list of child processes given a\nProcess ID we found **ps-tree**: https://github.com/indexzero/ps-tree  \nit was *un-maintained* and had *no tests*\n  so we submitted an [***issue***](https://github.com/indexzero/terminate/issues/10)\n  offering to update the module *with tests*.  \n  [*Charlie*](https://github.com/indexzero/terminate/issues/10#issuecomment-86795133)\n  replied welcoming an update so we submitted\n  a [***Pull Request***](https://github.com/indexzero/ps-tree/pull/12)\n  with ***100% test coverage*** which was [***Merged*** by *Charlie*](https://github.com/indexzero/ps-tree/pull/12#issuecomment-91785753)  \nps-tree in turn uses [**event-stream**](https://github.com/dominictarr/event-stream)\n(by [Dominc Tarr](https://github.com/dominictarr)) for streaming the result\nof its process lookups.  \n**event-stream** does not publish its' code coverage,\nbut is tested (and *more importantly* ***used*** by millions of people)  \nhas had ***many itterations*** and has been ***stable*** for a while:\n\n[![NPM](https://nodei.co/npm/event-stream.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/event-stream/)\n\nWhile we don't *like* the fact that **event-stream** has dependencies which have\n*limited* ***automated tests***,  \nwe are willing to place *reliance* on the module given how\n\"***real-world tested***\" it is.\n\n*If* at any point we find that relying **event-stream** or its underlying\ndependencies is the source of a bug or sleepless nights,  \nwe can either [***make time***](https://github.com/ideaq/time)\nto contribute the tests ***or*** *write our own* version of **ps-tree**\n*without dependencies*  \n(*which should \"only\" take a day but won't be as elegant...*)\n\n\n## Research\n\n### Background Reading\n\n+ How to terminate node processes: https://github.com/joyent/node/issues/1172 (history lesson)\n+ nodejs exec command failing with no useful error message:\nhttps://github.com/joyent/node/issues/4590\n\n### Useful StackOverflow Questions/Answers\n\n+ [spawning node.js child processes results in zombie processes on cloud foundry](https://stackoverflow.com/questions/27381163)\n+ [Why does my node app process keep getting stopped when I use forever?](https://stackoverflow.com/questions/26694100)\n+ [kill all child_process when node process is killed](https://stackoverflow.com/questions/18275809)\n+ [Why doesn't my Node.js process terminate once all listeners have been removed?](https://stackoverflow.com/questions/26004519)\n+ [nodejs exec command failing with no useful error message](https://stackoverflow.com/questions/14319724)\n+ [How many child processes can a node.js cluster spawn on a 64bit Wintel PC?](https://stackoverflow.com/questions/9275654)\n+ [Why is Node.js single threaded?](https://stackoverflow.com/questions/17959663)\n\n\nOther potential modules we could have used:\n\n+ **node-ps**: https://github.com/neekey/ps (has basic tests but no coverage / unmaintained?)\n+ **tree-kill**: https://www.npmjs.com/package/tree-kill (no tests!!)\n+ **nexpect**: https://github.com/nodejitsu/nexpect (spawn and control child processes\n  looks really good, but we wanted *less abstraction*)\n\n\n### Name\n\n[**Terminate**](https://www.google.co.uk/search?q=terminate)\nseemed like the *best* (of the available) name,  \nif you have a *better suggestion*, please share!\n\n<br />\n<br />\n\n## This Project Reminded me of Two *xkcd* Comics:\n\n![xkcd terminate](https://i.imgur.com/KQ9v7ll.png)\n\n![xkcd time robot](https://imgs.xkcd.com/comics/time_robot.png)\n","_attachments":{},"homepage":"https://github.com/dwyl/terminate","bugs":{"url":"https://github.com/dwyl/terminate/issues"},"license":"GPL-2.0"}