UNPKG

50.5 kBMarkdownView Raw
1## v2.10.2 ( Thu Mar 29 2018 13:06:11 GMT+0200 (CEST) )
2
3
4## Bug Fixes
5 - reinforce pm2-runtime auto exit strategy #3567 #3206
6 ([e09cdbab](https://github.com/Unitech/pm2/commit/e09cdbabd0b479acda3cb24154bbaa071aa35407))
7
8
9
10
11## Pull requests merged
12 - Merge pull request #3569 from Unitech/pm2-runtime-hot-fix
13 ([473a2d6d](https://github.com/Unitech/pm2/commit/473a2d6d3867c617e4a41571d1780618c5025b87))
14 - Merge pull request #3547 from Unitech/revert-3532-logs-smart-app-name-cutting
15 ([438e3030](https://github.com/Unitech/pm2/commit/438e303013e82ecc199cb68d018144cde8a0b2e6))
16 - Merge pull request #3532 from N-Nagorny/logs-smart-app-name-cutting
17 ([067c18e6](https://github.com/Unitech/pm2/commit/067c18e601aca4fac10101a7c23cc4c3525ad776))
18
19
20
21## v2.10.1 ( Mon Feb 26 2018 11:38:18 GMT+0100 (CET) )
22
23
24## Bug Fixes
25 - restore --raw option #3476
26 ([340011ca](https://github.com/Unitech/pm2/commit/340011cace2b90c2a1ead8d86baba517f5570e15))
27
28
29## v2.10.0 ( Mon Feb 19 2018 14:51:19 GMT+0100 (CET) )
30
31
32### Bug Fixes
33 - add livescript in default modules
34 ([a315eeb6](https://github.com/Unitech/pm2/commit/a315eeb65f04b22643a903f0cb1c0f416615ad8b))
35 - replace dash with underscore
36 ([203df768](https://github.com/Unitech/pm2/commit/203df7688ca348967c00bc45289ae70fd2c4aaaa))
37 - make sure not pm2 is running
38 ([bd798fd7](https://github.com/Unitech/pm2/commit/bd798fd748665e935db4bb91f9d1d66952d9842a))
39 - auto-exit edge case fix + pm2 no daemon mode + log in raw by default + less logs
40 ([704ae518](https://github.com/Unitech/pm2/commit/704ae518f5d7df0a631349e518d81cef51249a58))
41 - impact v8 flag in fork mode also
42 ([41bf6ef7](https://github.com/Unitech/pm2/commit/41bf6ef7d3633180b4c1e90f36eb206d82fab2b1))
43 - fixup! #2182 Get rid of annoying popups in Windows 10
44 ([3a85b59d](https://github.com/Unitech/pm2/commit/3a85b59de4a76796ad0880368d8d085a7ba55d36))
45
46
47
48
49### Hot Fixes
50 - \#3420 ([673acf36](https://github.com/Unitech/pm2/commit/673acf36b4ca1fd65c5135a92d56081f76237a8b))
51
52
53
54
55### Features
56 - add dependencies section into ecosystem.json file.
57 ([828a30d0](https://github.com/Unitech/pm2/commit/828a30d0ccc88b3f6e2b66d517ccf5f2394bd08b))
58 - --deep-monitoring available from pm2-runtime
59 ([99e62e3b](https://github.com/Unitech/pm2/commit/99e62e3bb808f071d6e4850c234b34f7de65b1c2))
60 - add deep_metrics to deep_monitoring flag
61 ([4d1bea5e](https://github.com/Unitech/pm2/commit/4d1bea5e0bbaab1f16f75d012bca25702cdff88e))
62 - add flag to enable deep-monitoring
63 ([c5418688](https://github.com/Unitech/pm2/commit/c541868837a1c4421394de5dd1029d2619b5ac82))
64 - allow pm2 to install a set of module as one single command and add deep-monitoring.
65 ([9dddc80d](https://github.com/Unitech/pm2/commit/9dddc80db5e496def44d4d36716b7de54e5171cf))
66 - pm2 pid <app_name> command
67 ([6687d499](https://github.com/Unitech/pm2/commit/6687d499415151bd62489fed5331f414576ec354))
68 - allow pm2 to install and enable event-loop-inspector data collecting
69 ([e6b0c474](https://github.com/Unitech/pm2/commit/e6b0c47443d3e6a839bf29057ef0a80ef135c47e))
70 - ignore signal when running in --no-daemon
71 ([b9c01c99](https://github.com/Unitech/pm2/commit/b9c01c99d54aba98ab790b8888500ac0f0af05c9))
72 - upgrade pmx to git development branch
73 ([21be05a0](https://github.com/Unitech/pm2/commit/21be05a07bd93eacaddedde3b647c16468937473))
74 - allow pm2 to enable v8 data collecting from pmx
75 ([aa180fa8](https://github.com/Unitech/pm2/commit/aa180fa8ab47f0c687d7c21854d005ad0ebf8475))
76 - allow pm2 to install gc-stats
77 ([15634168](https://github.com/Unitech/pm2/commit/15634168582e4c7b3c5f47a3f58a0fcf8b732a76))
78 - feat add changelog generation support
79 ([14f53fc0](https://github.com/Unitech/pm2/commit/14f53fc0c28be4084778785aeace3763ed0d827f))
80
81 - **pm2**
82 - add pm2 init option to generate an ecosystem file
83 ([5d56fac7](https://github.com/Unitech/pm2/commit/5d56fac7cc12590af29ee46c68ba32a82a2b813b))
84 - add pm2 init option to generate an ecosystem file
85 ([a38fd199](https://github.com/Unitech/pm2/commit/a38fd199b90d27a2405f8cabab0e4f6e45c69b08))
86
87
88
89
90### Documentation
91 - add documentation on new pm2 install command
92 ([c90c453f](https://github.com/Unitech/pm2/commit/c90c453f85b07adb346bc55c2b685d689a2e96f7))
93 - add sendDataToProcessId into typescript definitions
94 ([4a2e8d2d](https://github.com/Unitech/pm2/commit/4a2e8d2d2c4b38fe0ff2377dfe32fce9a43c8044))
95
96
97
98
99### Refactor
100 - delete all "if" condition when installing new module, create an object with all modules and a generic installation process
101 ([1b92a9c4](https://github.com/Unitech/pm2/commit/1b92a9c4000734367e68d8dbd60d0901009f4c56))
102 - deep pm2-runtime refactor #3408 #3257 #3266
103 ([c13b2364](https://github.com/Unitech/pm2/commit/c13b23648269529a1f998d816be10f895665861e))
104 - no more interactive spinner for connection to KM + change pm2 log format + remove some logs
105 ([d1916f40](https://github.com/Unitech/pm2/commit/d1916f40962b2cc8a1866172eab7d5d89db093be))
106
107
108
109
110### Chore
111 - pmx to 1.6.3-rc2
112 ([41815e0b](https://github.com/Unitech/pm2/commit/41815e0ba0298979f936b3d4badb196f8d9783d8))
113 - switch pmx to development
114 ([748019d1](https://github.com/Unitech/pm2/commit/748019d1ef0cf760b5e8de9d5b6af6fee300db02))
115 - 2.10.0-beta
116 ([0d2b7172](https://github.com/Unitech/pm2/commit/0d2b7172a093d0638deabb5f23383cc9eec5dda9))
117 - upgrade pmx to 1.6.3-next
118 ([5a1b4343](https://github.com/Unitech/pm2/commit/5a1b4343cc1e1f5018e21451a111340351706213))
119 - upgrade pmx dep
120 ([4bbeec3d](https://github.com/Unitech/pm2/commit/4bbeec3d170ba63af0c0ae0e2d07beec2ab49772))
121 - switch to published pmx(@next)
122 ([859d18fb](https://github.com/Unitech/pm2/commit/859d18fbc79e2a2760fe90e9c17e71209f8177ce))
123 - remove --exit from mocha.opts
124 ([36bf03e1](https://github.com/Unitech/pm2/commit/36bf03e1eed69a27e518151e2f7aa958b15db2fb))
125 - remove unused files
126 ([65d233e5](https://github.com/Unitech/pm2/commit/65d233e5b5290f65796b7cf3daa20706e0f3bee6))
127
128
129
130
131### Branchs merged
132 - Merge branch 'development' of ssh://github.com/deltasource/pm2 into hotfix/scoped-package-support
133 ([94ea9d9e](https://github.com/Unitech/pm2/commit/94ea9d9eeff40faca8aa9f7edfc81aa29c08e740))
134 - Merge branch 'master' into development
135 ([46606903](https://github.com/Unitech/pm2/commit/46606903f25d0f4d0eee226da863e20e4b396dc9))
136 - Merge branch 'development' of github.com:Unitech/pm2 into v8_option
137 ([757562f7](https://github.com/Unitech/pm2/commit/757562f755b09124bbd006209ae38a096d692529))
138 - Merge branch 'development' of github.com:Unitech/pm2 into gc-stats
139 ([3ed1a747](https://github.com/Unitech/pm2/commit/3ed1a7471aec7d79f7d604447ac7445720bdaced))
140 - Merge branch 'master' into development
141 ([ee7651e4](https://github.com/Unitech/pm2/commit/ee7651e47e944c3c829933494c6cc765deb4bb29))
142
143
144
145
146### Pull requests merged
147 - Merge pull request #3466 from natcl/development
148 ([c6d7ace8](https://github.com/Unitech/pm2/commit/c6d7ace802e667def75bc68344effa4856830fb4))
149 - Merge pull request #3464 from andyfleming/patch-1
150 ([dd9ebb60](https://github.com/Unitech/pm2/commit/dd9ebb6051708ee5a13cc68dbcb8238e41860bb9))
151 - Merge pull request #3459 from rmonnier/master
152 ([46948a98](https://github.com/Unitech/pm2/commit/46948a98e90c7864f7b8100db5c519fe9d37f11a))
153 - Merge pull request #3458 from Unitech/pm2_install_command
154 ([f3b35726](https://github.com/Unitech/pm2/commit/f3b35726895bd82b92813f308b787d68e9df1fa4))
155 - Merge pull request #3453 from deltasource/hotfix/scoped-package-support
156 ([974f9bf0](https://github.com/Unitech/pm2/commit/974f9bf0dc7a7aa7ff6860f8640da3593b802296))
157 - Merge pull request #3448 from Unitech/deep_monitoring_flag
158 ([331bc741](https://github.com/Unitech/pm2/commit/331bc741d7285094738a91cd816bc9755cc76605))
159 - Merge pull request #3447 from Unitech/deep-monitoring
160 ([719d328e](https://github.com/Unitech/pm2/commit/719d328e8d14871b34fd33df54fd80f4f8e7825f))
161 - Merge pull request #3443 from Unitech/event-loop-inspector
162 ([77a35274](https://github.com/Unitech/pm2/commit/77a3527407f3d090c7a5fa0bedaf943a7536b5eb))
163 - Merge pull request #3442 from Unitech/event-loop-inspector
164 ([dad98e6e](https://github.com/Unitech/pm2/commit/dad98e6e0738983717fee155ff0f6519955ffc1b))
165 - Merge pull request #3424 from Unitech/sendDataToProcessId_def
166 ([95e85eef](https://github.com/Unitech/pm2/commit/95e85eef84510dddfb0c6b13f0ada38a7dd66cae))
167 - Merge pull request #3438 from Unitech/v8_option
168 ([e46b15dc](https://github.com/Unitech/pm2/commit/e46b15dc32c18e8b24f66da0c79cc06f91cf11b5))
169 - Merge pull request #3437 from Unitech/gc-stats
170 ([1a6771aa](https://github.com/Unitech/pm2/commit/1a6771aa361bb5718bafd6e33e616725f9c0d328))
171 - Merge pull request #3400 from toddwong/windowsHide2
172 ([f65e8794](https://github.com/Unitech/pm2/commit/f65e8794df6e67f4ff60dfbec7c05a37721cb6f9))
173 - Merge pull request #3421 from Unitech/generate_changelog
174 ([b0690618](https://github.com/Unitech/pm2/commit/b0690618d940c11e28eeb5115c060bf363c7b62b))
175 - Merge pull request #3419 from Rohja/fix-build-number-deb-rpm
176 ([b4343de2](https://github.com/Unitech/pm2/commit/b4343de2703fce03f3cf48cc303b12bc6b69b743))
177
178
179
180
181## 2.9.2
182
183- #3364 30% faster CLI via v8-compile-cache
184
185- add process._getActiveRequests() and process._getActiveHandles() custom metrics
186- #3402 #3360 fix bad username
187- #3413 check dependencies before launching tests
188- #3295 add sorting feature for process list (pm2 ls --sort <field_name:order>)
189- #3404 if no gid specified - set gid to uid
190- #3287 add typing for env
191- #3374 separate stdout and stderr for pm2-docker/pm2-runtime
192- #3366 improve building of rpm and deb packages
193- #3375 sendLineToStdin/sendDataToProcessId fix
194- #3365 fix report command for windows
195- #3367 Display an error if the process is not found when running 'pm2 logs <process-name>'
196- #3256 TypeError: Cannot read property 'destroy' of undefined
197- User: append SUDO_USER if no uid has been set and SUDO_USER present
198- User: check permission of agent
199- KM: send outliers
200- KM: infinite retry for km connection
201
202## 2.9.1
203
204- #3356 hot fix on startup system
205
206## 2.9.0
207
208- #3278 --silent -s now does not print welcome message
209- #3345 #2871 #3233 pm2 -v will not spawn daemon anymore
210- #3341 update moment dependency
211- #3314 pm2 install <MODULE> --safe will now monitor new installation of module and will
212 fallback to previous version if the module is failing (restart, fail on npm install)
213- #3314 module folder structure refactoring to keep independent dependencies for each modules
214- #3324 remove yarn installation of modules
215- #3273 pm2 --mini-list now print the right pid file
216- #3206 add flag to auto turn off auto exit with pm2-docker
217- #3036 Fix applying env PM2_CONCURRENT_ACTIONS correctly
218- #3346 do not chmod systemd script (was failing systemd script on orange pi)
219- #3347 Add --wait-ip option to override systemd initialization to wait for internet full connectivity
220- #3348 alias pm2-docker to pm2-runtime
221- #3350 Override HOME and USER when setting --uid to start module or application
222- #3351 alias pm2 ps to pm2 ls (docker style)
223
224## 2.8.0
225
226- #2070 Fix sendDataToProcessId not working (@h091237557)
227- #2182 Add windowHide options in cluster mode (@soyuka)
228- #3206 By default in docker, pm2 will auto exit when no process are online (@dguo)
229- #3225 fix --lines accepting invalid values (@vmarchaud)
230- #3036 fix when PM2_CONCURRENT_ACTIONS was overriden everytime on node > 4 (@danez)
231- Add node 9 tests on CI (@Unitech)
232- Add pm2 unlink command (eq to pm2 link delete) (@Unitech)
233- Fix interactor to support custom endpoints (@vmarchaud)
234- Allow custom PM2_HOME for docker (@lucidNTR)
235- Support MJS module (@vpotseluyko)
236- Allow custom service name for startup (@danez)
237- Update PMX to 1.5 (@unitech)
238
239## 2.7.2
240
241- #3200 Associate .tsx files with ts-node (@dguo)
242- #3202 Add first draft of typescript definitions (@jportela)
243- Allow to install http url via pm2 install (@unitech)
244- #3204 Given --uid add all its gids automatically (@jmeit)
245- #3184 bugfix: try/catch around userInfo to avoid crash (@vmarchaud)
246- #3181 force upgrade to latest pm2-deploy
247
248## 2.7.1
249
250- #3117 Add required node env on cluster mode start instance (2m0nd)
251- make profiler compatible with Node.js 8
252
253## 2.7.0
254
255- #3150 fix watchdog on agent
256- #3001 dump-backup feature
257- #3134 edge case error handling
258- #3096 fix module installation
259- #3085 honor every pm2 args on restart
260- #3046 better error message if PM2 is misconfigured
261- #3058 pm2-docker now does not write logs by default
262- #3045 continue to broadcast on the bus system even if logs are disabled
263- [Docker] Auto Exit when no application is running
264- [Keymetrics] pm2 unmonitor fix
265- [Beta Container Support] beta pm2 start app.js --container
266- [Chore] upgrade modules
267- [Chore] enhance package.json
268
269## 2.6.1
270
271- #3037 bug fix cb
272
273## 2.6.0
274
275### Changes
276
277- #2998 pm2 report command for automated system inspection
278- #2997 --disable-logs option to suppress error
279- #2290 allow to declare apps under "pm2" attribute (eq "apps"). Nicer in package.json
280- #2994 allow to specify typescript version to be installed
281- #2501 low memory environment pm2 setting via PM2_OPTIMIZE_MEMORY (beta)
282- #2968 pm2 attach <pm_id> to attach to process stdin / stdout
283- pm2-runtime -> drop in replacement for the node.js binary
284- #2951 pm2 reload command locker via timestamped lock file
285- #2977 pm2 reloadLogs protected
286- #2958 Allow to delete attribute via --attribute null
287- #2980 PM2_SILENT=true pm2 startup
288- #2690 --parallel <number> command allows to change the nb of concurrent actions (reload/restart)
289- expose cwd on CLI via --cwd
290- multiple pm2-docker enhacements
291- Alias pm2.link and pm2.unlink to pm2.interact and pm2._pre_interact
292- Allow to customize kill signal via PM2_KILL_SIGNAL
293- Support git+http in module installation
294- force reverse interaction reconnection on internet discovery
295- `--instances -1` when having a 1 cpu is no-longer spawning no processes #2953
296- refactor the context retrieving from error
297- add a TTL for file cache entry
298- #2956 Fix listen_timeout in combination with wait_ready
299- #2996 respect signal order on pm2 reload (delegate ready function to reload fn)
300
301### Breaking
302
303- Drop pm2-daemon CLI (replaced by pm2-runtime)
304
305## 2.5
306
307- `pm2 register|login` to create new account / login on Keymetrics + auto link
308- `pm2 open` to open dashboard on browser
309- `pm2 monitor|unmonitor <pm_id|name|all>` for selective monitoring
310- #2818 alias pm2-docker to pm2-daemon
311- #2809 correctly resolve git/npm repo when running pm2 install
312- #2861 better auto exit check for docker
313- #2870 avoid null error when preparing app config
314- #2872 avoid showing useless warning
315- #438 allow to override daemon config paths via env (example: `PM2_PID_FILE_PATH` to override pid file of the daemon)
316- #2849 better gentoo template for pm2 startup
317- #2868 allow tailing log with `--raw` flag
318- #452 Add `PM2_WEB_STRIP_ENV_VARS` to remove environnement vars from `pm2 web` endpoint
319- #2890 Fix wait-ready for cluster mode
320- #2906 randomize machine name with default pm2 link
321- #2888 allow to use regex for pm2 logs
322- #2045 allow to rename NODE_APP_INSTANCE env variable
323- #2809 add `increment_var` options to ask for a environnement variable to be incremented for each application started
324- more informations when failing to deploy on custom ecosystem file
325- fix tests for node 8
326- fix missing callback when overriding console.log
327- allow to rename daemon process name via `PM2_DAEMON_NAME`
328- few typo in the readme
329
330### Breaking change
331
332- the NODE_APP_INSTANCE var behavior has been changed :
333 - old behavior : when starting multiples instances of an app each one get an unique number, but its not working anymore if you are using `pm2 scale` (simply put its possible to have two application with the same number)
334 - new behavior : the number are consistent, if you scale up/down it will take a number that isn't used by another application (so two application should never have the same number)
335
336## 2.4.5/6
337
338- #2818 alias pm2-docker to pm2-runtime
339- #2815 polyfill for path.isAbsolute for node v0.11
340
341### Breaking change
342
343- rundev command has been dropped because of too low adoption
344
345## 2.4.4
346
347- #2806 fix reconnection to keymetrics
348
349## 2.4.3
350
351- #2759 disable default require of vxx in pmx
352- #2651 always spawn pm2 daemon with `node` binary
353- #2745 new issue template
354- #2761 Make JSON log stream timestamp in consistent format
355- #2770 Fix trigger API never calling callback
356- #2796 Fix absolute path on windows
357- [KM] profiler installation via `pm2 install v8-profiler` or `pm2 install profiler`
358- [KM] Agent rescue system
359
360## 2.4.2
361
362- [KM] Disable pm2-server-monit auto install
363
364## 2.4.1
365
366- #2720 multi user startup script
367- #2266 start and tail logs via `pm2 start app.js --attach`
368- #2699 add back previous termcaps interface via `pm2 imonit`
369- #2681 fix log folder create
370- #2724 make sure process is stopped even if there is a restart_delay
371- #2706 install pm2 modules via yarn if available
372- #2719 show 15 logs line bu default
373- #2703 allow custom timestamp with pm2-docker
374- #2698 fix unicode on pm2 monit
375- #2715 handle treekill edge case bug
376- Optimize CPU usage of pm2 monit command
377- [KM] URL web access dashboard
378- [KM] Auto install pm2-server-monit on keymetrics linking
379- [KM] Error reporting: add context (-B3 -A3 code lines)
380- [KM] Transaction Tracer: reset routes on app restart / wait some time before sending
381
382## 2.4.0
383
384- #2631 new pm2 monit command (blessed dashboard!)
385- #2670 allow to expose a folder over http via `pm2 serve <path> <port>`
386- #2617 fix startup script generation on macosx (launchd)
387- #2650 new option to append env name to app name (used to allow the same app to be launched in different environement w/o name conflict)
388- #2671 allow to pass a delay to pm2-docker (`pm2-docker process.json --delay 10`)
389- `pm2 ecosystem simple` to generate a simple ecosystem file
390- aliasing: `pm2-dev <script>` <=> `pm2-dev start <script>`
391- fix git parsing when using cwd
392- #2663 allow to directly output json when logging (via log_type for JSON and --log-type via CLI)
393- #2675 fix path when installing language module like typescript
394- #2674 increase restart timeout for systemd startup
395- #2564 allow to operate process (restart/reload/stop/delete) with regex
396
397## 2.3.0
398
399- Drop Node.js 0.10 support
400- (CLI) remove immutability of CLI parameters on restart (critical for ux)
401- Keymetrics VXX beta
402- Alias "exec" to "script"
403- `pm2 logs --nostream` allow to print last logs of application without attaching to logs bus #2620
404- Added startup script for gentoo v2.3 via PR #2625
405- optionalDependencies from http to https
406- remove agent pid on exit
407- #2646 check ps.stdout on treekil
408
409## 2.2.3
410
411- Various startup refactor fixes (#2598, #2587, #2590)
412
413## 2.2.2
414
415- #2574 Support Amazon systemv
416
417## 2.2.1 (rc: 2.2.0@next)
418
419- #2559 New startup system. Supported init system: systemd, upstart, launchd
420
421 $ pm2 startup # Auto detect available init system + Setup init scripts
422 $ pm2 unstartup # Disable and Remove init scripts
423
424*SystemD, Upstart and Launchd scripts work like a charm*
425
426- #2515 New way to install PM2 on Debian based system:
427
428```
429$ wget -O - http://apt.pm2.io/ubuntu/apt.pm2.io.gpg.key | sudo apt-key add -
430$ echo "deb http://apt.pm2.io/ubuntu xenial main" | sudo tee /etc/apt/sources.list.d/pm2.list
431$ sudo apt-get update
432$ sudo apt-get install pm2
433```
434
435- #1090 pm2 resurrect does not respawn the same processes
436- #2544 Attach logs to exception
437- #2545 Right exit code via pm2 api
438- #2543 Fix module pid/mem monitoring
439- #2537 Remove duplicated code in Configuration subsystem
440- Responsive pm2 list (shortened list when < 90 columns)
441- If not TTY do not print ascii table
442- #2509 Trigger functions inside Node.js application from the PM2 CLI
443- Rename pm2.triggerCustomAction() by pm2.trigger(<app_id>, <action_name>, [params], [cb])
444
445## 2.1.6
446
447- #2509 Trigger functions inside Node.js application from the PM2 CLI
448- #2474 Resolve home path in configuration file
449- #2526 Expose .launchAll() method to API
450- #2351 inner pm2 actions - drop autorestart and node_args options
451- #2530 Make sure all processes are killed on system signal to PM2
452- #281 allow to combine PM2_SILENT + pm2 jlist to avoid extra data
453- Alias attributes error_file to err_file + err_log + err, alias out_file to out, out_log
454- Do not ask for pass for set/multiset from KM
455
456## 2.1.5
457
458- #2502 fix SIGTERM signal catch on pm2-docker
459- #2498 #2500 global log rotation
460
461## 2.1.4
462
463- #2486 add --web option to pm2-docker command to expose web process api
464- #2333 #2478 #1732 #1346 #1311 #1101 Fix GracefulShutdown SIGINT output + Better Stop process flow
465- #2353 --wait-ready will wait that the application sends 'ready' event process.send('ready')
466- #2425 allow to specify node.js version to be used or installed via interpreter 'node@VERSION'
467- #2471 Make app environment immutable on application restart/reload by default for CLI actions
468- #2451 Config file can be javascript files
469- #2484 fix pm2 kill on windows
470- #2101 pm2 ecosystem now generates a javascript configuration file
471- #2422 allow to pass none to exec_interpreter
472- Faster CLI load time, reduce load time by 1/4 (downgrade cli-table2 -> cli-table)
473- Do not use disconnect() anymore on cluster processes
474- Better Stop process flow: Upgrade TreeKill system + Wait for check
475- Fix deploy issue with Windows
476- Expose -i <instances> to pm2-docker
477- Drop npm-shrinkwrap
478- Upgrade chokidar (fix symlink), cron, fclone, shelljs
479- Add yarn.lock
480
481## 2.0.19
482
483- #2466 skip cluster workaround / fix cluster mode for Node.js v7
484- Enable Node v7 in travis
485
486## 2.0.16/17/18
487
488- #2400 Create log/pid default folder even if the root folder is already created
489- #2395 CRON feature now call PM2 for app to be killed (allow to use SIGINT)
490- #2413 #2405 #2406 do not exit on unhandledRejection auto catch
491- pidusage upgrade to 1.0.8 to avoid util exception on windows when wmic fail
492- Do no display error when pidusage try to monitor an unknow PID (modules)
493- pm2-docker binary does not need the start option
494
495## 2.0.15
496
497- process.on('unhandledRejection'): allow to catch promise error that have not been catched
498- upgrade fclone and pidusage (faster windows CPU/Mem monitoring)
499- allow to call pm2 CLI from bash script managed by pm2
500- #2394 fix pm2 id command
501- #2385 ts-node upgraded to latest
502- #2381 autocompletion fix
503
504## 2.0.12 Bradbury
505
506- Memory usage reduced by 40%
507- CPU usage in overall situations reduced by 60%
508- Refined pm2 logs command with --json, --format and --raw options
509- Faster process management with CONCURRENT_ACTIONs enabled
510- Faster installation (v1: ~30secs, v2: ~10secs)
511- Faster `pm2 update` with Keymetrics linking delayed at the end
512- Much better Module system with raw NPM feedback
513- Better Windows support
514- **pm2-docker** command with his official [Docker image](https://github.com/keymetrics/pm2-docker-alpine) + json output + auto exit
515- **pm2-dev -> pmd** command enhanced (better log output, post-exec cmd)
516- Watch and Reload instead of Watch and Restart
517- New PM2 API, backward compatible with previous PM2 versions
518
519The new PM2 API is greatly tested and well designed:
520
521```javascript
522var PM2 = require('pm2');
523
524// Or instanciate a custom PM2 instance
525
526var pm2 = new PM2.custom({
527 pm2_home : // Default is the legacy $USER/.pm2. Now you can override this value
528 cwd : // Move to CWD,
529 daemon_mode : // Should the process stay attached to this application,
530 independant : // Create new random instance available for current session
531 secret_key : // Keymetrics secret key
532 public_key : // Keymetrics public key
533 machine_name: // Keymetrics instance name
534});
535
536// Start an app
537pm2.start('myapp.js');
538
539// Start an app with options
540pm2.start({
541 script : 'api.js',
542 instances: 4
543}, function(err, processes) {
544});
545
546// Stop all apps
547pm2.stop('all');
548
549// Bus system to detect events
550pm2.launchBus((err, bus) => {
551 bus.on('log:out', (message) => {
552 console.log(message);
553 });
554
555 bus.on('log:err', (message) => {
556 console.log(message);
557 });
558});
559
560// Connect to different keymetrics bucket
561pm2.interact(opts, cb)
562
563// PM2 auto closes connection if no processing is done but manually:
564
565pm2.disconnect(cb) // Close connection with current pm2 instance
566pm2.destroy(cb) // Close and delete all pm2 related files of this session
567```
568
569- Better CLI/API code structure
570- PM2 isolation for multi PM2 instance management
571
572### Bug fixes
573
574- #2093 #2092 #2059 #1906 #1758 #1696 replace optional git module with tgz one
575- #2077 fix calling pm2.restart inside pm2
576- #2261 GRACEFUL_LISTEN_TIMEOUT for app reload configurable via --listen-timeout
577- #2256 fix deploy command for yaml files
578- #2105 alias pm2 logs with pm2 log
579- Extra module display http://pm2.keymetrics.io/docs/advanced/pm2-module-system/#extra-display
580- Yamljs + Chokidar Security fixes
581- pm2 update / pm2 resurrect is now faster on Node > 4.0
582- keymetrics linking after pm2 update is done once all apps are started
583- pm2 list processes are now sorted by name instead id
584- #2248 livescript support added in development mode
585- The client/server file called Satan.js does not exists anymore. It has been replaced by the file combo ./lib/Client.js and ./lib/Daemon.js
586- PM2 --no-daemon is better now
587
588### Breaking change
589
590- Coffeescript must be installed via `pm2 install coffeescript`
591
592## 1.1.3
593
594- Node v6 compatibility
595
596## 1.1.2
597
598- [#2071 #2075] Fix pm2-dev command
599
600## 1.1.0: Galactica release
601
602This release is about PM2's internals refactoring, homogenization in action commands (in terms of behavior and outputs).
603Some interesting features has been added, as YAML file support (for application declaration) and some syntaxic sugar.
604The Keymetrics interface has been enhanced, dividing by two the memory usage and avoiding any possible leak in any potential scenarios. Reconnection system has been refactored too, we kindly ask our Keymetrics users to upgrade to this version ASAP.
605
606**This version has been heavily tested in testing, production environments and deeply monitored in terms of CPU and Memory usage.**
607
608- [#133 #1568] Allow to rename a process via pm2 restart app --name "new-name"
609- [#2002 #1921 #1366] Fix CLI/JSON arguments update on restart (args, node_args, name, max-memory)
610- [#578] Add YAML support for application configuration file (in extent to JSON and JSON5 support)
611- [Keymetrics agent refactoring] TCP wait, memory consumption divided by two, reconnection refactoring, keep alive ping system
612- [Keymetrics agent refactoring] Fix random no response from pm2 link and pm2 unlink
613- [#2061] Kill ESRCH of processes in cluster mode with SIGINT catcher fixed
614- [#2012 #1650 #1743] CLI/JSON arguments update on reload
615- [#1613] Reload all reload ALL applications (stopped, errored...)
616- [#1961] Fix kill timeout info log
617- [#1987] Fix FreeBSD startup script
618- [#2011] Respect process.stdout/.stderr signature
619- [#1602] Fix zombie process when using babel-node as interpreter
620- [#1283] --skip-env option to not merge update with system env
621- Homogeneize actions commands outputs
622- Option --interpreter-args added (alias of node-args)
623- Allow to use exactly the same option in JSON declaration and CLI (e.g. interpreter) to avoid confusion
624- pm2 show, now shows more commands to manage processes
625- Refactor programmatic system
626
627## 1.0.2
628
629- [#1035 #1055] Deactivate automatic dump on startup scripts
630- [#1980] Add Javascript source map resolution when exceptions occurs [Documentation](http://pm2.keymetrics.io/docs/usage/source-map-support/)
631- [#1937] Allow to act on application having numerics as app name
632- [#1945] Fix post_update commands section when file contains Javascript
633- [#624] --only <app-name> to act only on specified app name in json app declaration
634- [0.6.1](https://github.com/keymetrics/pmx/releases/tag/0.6.1) PMX upgrade
635
636## 1.0.1
637
638- [#1895] pm2 id <app_name>: output array of ids for app_name @soyuka
639- [#1800] pm2 show <app_name>: now also display node.js version @soyuka
640
641## 1.0.0
642
643- [#1844][#1845][#1850] Load configuration in /etc/default/pm2 + add ulimit -n override
644- [#1810] Add --kill-timeout <number> option (delay before process receive a final SIGKILL)
645- [#1830] Add tests for PM2_KILL_TIMEOUT (SIGKILL delay) + default SIGINT to any kind of procs
646- [#1825] Process management commands (start/restart/stop/delete) can take multiple arguments
647- [#1822] Add new method pm2.sendDataToProcessId(type|data|id) to send data to processes
648- [#1819] Send SIGINT signal to process instead of SIGTERM
649- [#1819][#1794][#1765] Avoid writing on std err/out when process is disconnected
650
651- Add default attribute in schema.json to allow to configure default value when passing a JSON
652- JSON and CLI starts are now consistent in terms of option size, attribute number
653- pm2.restart(json_data, function(err, data) now returns an array of process instead of simple object (success:true))
654- Now pm2 restart process.json --env <X>, refresh environment variable on each restart depending of the X environment
655- prepareJSON method in PM2 code (God.js) removed
656- partition Common.prepareAppConf (duplicate with verifyConfs)
657- Change signature of Common.prepareAppConf
658- Centralize Interpreter resolution via Common.sink.resolveInterpreter(app) in Common.js
659
660- Better meta information when process restart/reload/stop (signal + exit code)
661- Upgrade pm2-axon, cron, should, mocha, coffee-script, chokidar, semver NPM packages
662- Show process configuration option when describing process
663- Add --no-automation flag
664- Fix when starting application with illegal names (#1764)
665- Fix management of app starting with numerics in the filename (#1769)
666- Fix versiong system (reset to default on resurrect/prepare)
667- Increase buffer size for versioning meta parsing
668
669## 0.15.10
670
671- Hot fix #1746
672
673## 0.15.9
674
675- Chokidar upgraded to 1.2
676- Fix startup script via new --hp option
677- Fix JSON refresh system
678
679## 0.15.1-8
680
681- JSON refresh available
682- New module system backward compatible and compatible with NPM 3.x
683- Possibility to install module from tgz (#1713)
684- ecosystem generated file via pm2 generate uptaded (not json5 prefix anymore, and updated comments)
685- always prefix logs #1695
686- blessed dependency removed
687- drop locking system
688- add callback to deploy (#1673)
689- typo fixes
690- pm2.update added
691- small db for pm2 modules added (solve npm 3.x issue)
692- pm2 multiset "k1 v1 k2 v2 k3 v3"
693- babel dependency removed
694- blessed dependency removed
695- chalk, safe-clone-deep, shelljs, semver upgraded
696- New command: pm2 module:update <module_name> -> Update a module
697- New command: pm2 module:publish -> Publish module in current folder + Git push
698- New command: pm2 module:generate [module name] -> Generate a sample module
699- Feature: configuration system for raw Node.js applications
700- alias pm2 install with pm2 i
701- JSON declaration: You can now use process.env in application declaration file
702- watch has been refactored for windows and tests
703- allow installation of specific module version
704- wrap final process kill intro try catch (c4aecc8)
705- Appveyor to test PM2 under Windows added (+ fix some incorect file name)
706- Allow to escape key name when using pm2 conf system
707
708## 0.14.7
709
710- New flag `--no-pmx` : starts an app without injecting pmx
711- New feature : cron restart now works in fork mode as well
712- Disabled auto-gc on interactor
713- Allow PM2 to execute binaries in $PATH
714- pm2 link priv pub --recyle for elastic infrastructure
715- pm2 deploy now check default file ecosystem.js[on|on5], package.json
716
717## 0.14.6
718
719- Scoped PM2 actions
720- Password encryption via pm2 set pm2:passwd xxxx
721- Interactor Remote action refactor
722- .getSync method to get configuration variable synchronously
723- Add password protected PM2 methods (install, delete)
724- pm2 get|pm2 conf display all confs
725- Password protected PM2 flag
726- New flag : `--restart-delay <ms>` (or `restart_delay` in JSON declaration)
727- New command : `pm2 deepUpdate`
728- New command (beta) : `pm2 logrotate`
729- Enhancement : pm2 handles processes that can't be killed in a better way
730- Fix : some ignore_watch issues
731- Fix : some pm2 startup systemd issues
732
733## 0.14.5
734
735- Hot fix
736
737## 0.14.4
738
739- New command : `pm2 iprobe [app_name|app_id|'ALL']`
740- Feature: FreeBSD startup script
741- Fix: Remove forced GC
742- Fix: ##1444 --next-gen-js in fork mode
743- Fix: Windows path fix
744
745## 0.14.3 (Current Stable)
746
747- `pm2 flush` now flushes pm2.log as well
748- New flag : `--no-treekill` : when used PM2 won't kill children processes
749- New flags : `pm2 logs ['all'|'PM2'|app_name|app_id] [--err|--out] [--lines <n>] [--raw] [--timestamp [format]]`
750- Enhancement: Modules installable via Github: `pm2 install username/repository`
751- Feature: PMX has *scoped function* -> pm2 stores temporary output from custom functions
752- Fix: Interactor issue when doing an heapdump
753- Feature: PM2 CLI autocompletion
754
755## 0.14.2
756
757- Improved pm2-dev
758- Now when apps list is empty, the `id` counter is set to 0
759- Removed pres/keymetrics.js post-install script
760- Fix : `pm2 logs` allocation error
761- Fix : `pm2 prettylist|jlist` truncated output
762
763## 0.14.0 - CrystalClear (pre 1.0)
764
765- Removed: pm2.startJSON() method, now call pm2.start()
766- API Change: pm2 start <app_name|app_id> restart an application already launched
767- API Change: pm2 start <json> restart all json apps if already launched
768- pm2 start all - restart all applications
769- pm2 reload <json_file> possible
770- pm2 gracefulReload <json_file> possible
771- Smart start (pm2 start app.js ; pm2 stop app ; pm2 start app)
772- Reduced memory footprint
773- Reduced pipelined data
774- Reduced CPU usage
775- Faster command processing
776- Upgrade shelljs, semver, colors, chalk, coffee-script, async, json-stringify-safe, cron, debug, commander
777- Fix: launchBus() only connects and disconnects once
778
779- Refactored `pm2 logs` :
780 - Now you don't need to install tail on Windows
781 - You don't need to Ctrl^C and `pm2 logs` again when a new app is launched (this one will be detected and added to the real-time logs output)
782 - Logs are shown in chronological order at a file level (modified date)
783 - More verbosity : tailed logs are explicitely separated from the real-time logs
784 - Real-time logs now use the `bus` event emitter
785 - PM2 logs added to the `bus`
786 - `--lines <n>` and `--raw` flags available for `pm2 logs` command
787 - New flag : '--timestamp [format]' // default format is 'YYYY-MM-DD-HH:mm:ss'
788 - Now you can exclusively show PM2 logs by doing `pm2 logs PM2`
789
790## 0.12.16
791
792- Feature : File transmission added in Agent
793- Feature : Transmit Node.js/io.js version in Agent
794- Feature : Parameters can be passed to remote actions
795- Feature : Support JS in addition to JSON and JSON5 config files #1298
796- Enhanced: pm2 conf display all configuration values
797- Enhanced: pm2-dev
798- Enhanced: Better error messages when validating data passed via CLI
799- Enhanced: Smaller memory footprint for PM2 (~30%)
800- Fix #1285 : PID file was deleted after a reload/gracefulReload
801- Fix : ENOMEM made PM2 crash
802
803## 0.12.15
804
805- Fix #941 : Env variables overrided when an app is restarted
806- max_memory_restart now performs a graceful reload
807- `pm2 logs --raw` now shows 20 last lines of each log file
808- pm2-dev run app.js : start an app in dev mode (--no-daemon --watch and stream logs of all launched apps)
809- --no-daemon command now display logs of all processes (Docker)
810
811## 0.12.14
812
813- `ilogs` is no longer part of PM2
814- Improved interaction with Keymetrics
815- BabelJS is now integrated into PM2 (`--next-gen-js` flag)
816
817## 0.12.13
818
819- Enhanced : PM2 doesn't leave processes behind when it crashes
820- Enhanced : Call reload instead of restart when max-memory-limit reached
821- Enhanced : Modules are compatible ES6 by default by adding --harmony flag
822- Enhanced : Dump feature is now smarter
823- Fix #1206 : fix `pm2 logs` bug when merged_logs
824- Fix : pm2 scale doesn't try to scale a fork_mode process
825
826## 0.12.12
827
828- `pm2 logs --raw` flag : show logs in raw format
829- New command: pm2 scale <app_name> <number> - scale up/down an application
830- Fix #1177 : no concurrent vizion.parse() for the same process event when it restarts
831- Added: Expose kill method programmatically
832- Added: Call disconnect without a function
833- Added: Programmatic call to .connect can now take no-daemon-option
834- Fixed: starting a JSON programmatically return a process list coming from God
835- Fixed: Reflect dump functions from CLI and God
836- Enhanced: New CLI API for configuring modules (pm2 conf module.option [value])
837- Added: Using Keymetrics harden PM2 by enabling a WatchDog that auto restart PM2 in case of crash
838- Added: Expose pm2 gc programmatically
839- Added: pm2 install <module_name> update the module
840- Enhanced: 4 new test suits for PM2 programmatics call
841- Enhanced: Documentation restructured
842
843## 0.12.11
844
845- `--no-autorestart` flag : starts an app without automatic restart feature
846(`"autorestart" : false` in JSON declaration)
847
848- `--no-vizion` flag : starts an app completely without vizion features
849(`"vizion" : false` in JSON declaration)
850
851- Fix #1146 : add module._initPaths() on ProcessContainer.js so it forces each
852new process to take the current NODE_PATH env value in account
853
854- New: pm2.start() now handles json objects as param
855
856- Added: timestamps to KM agent logs
857
858- Fix: now properly closes all fds after logging has finished.
859
860- New command: pm2 gc (manually triggers garbage collection for PM2)
861
862- VersioningManagment: exec() timeout configurable via .json
863
864- Fix #1143 :
865If we start let's say 4 instances of an app (cluster_mode),
866Each app will have a value in process.env.NODE_APP_INSTANCE which will be 0 for the first one,
8671, 2 and 3 for the next ones.
868
869- Fix #1154 :
870Negative arguments to '-i' are substracted to CPU cores number.
871E.g: 'pm2 start app.js -i -3' in a 8 cpus environment will start 5 instances (8 - 3).
872
873## 0.12.10
874
875- Fix : PM2 interactor doesn't send data about dead processes ('_old_') anymore.
876- Fix #1137 : Safe params for 'pm2 list' so cli-table won't fail
877- Refactored reverse interaction with keymetrics for better stability and more verbosity on Rollback/Pull/Upgrade operations
878
879## 0.12.9
880
881- Fix #1124 : PM2_PROGRAMMATIC flag wasn't handled properly
882- Fix #1121 : NODE_PATH before PATH so custom node versions come first
883- Fix #1119 : Safe params so cli-table won't fail
884- Fix #1099 : Bug when app name starts by digit (e.g '1-myApp')
885- Fix #1111 : More verbosity on writeFileSync errors
886- New env setting: PM2_KILL_TIMEOUT (ms) : time to wait before a process is considered dead
887- New env setting: PM2_CONCURRENT_ACTIONS : use it with care, value bigger than 1 is considered unstable
888- Refactored reload/gracefulReload for better stability
889
890## 0.12.8
891
892- Fix : `Channel closed error`
893- Fix : `Resource leak error`
894- Fix#1091 : when passing a wrong formated number to `-i` infinite loop
895- Fix #1068 #1096 : restart fails after reloadLogs()
896- New : When PM2 is being killed, all restarts are blocked to avoid conflict
897- New : PM2 dumps the process list before exiting if it is killed by signal
898- Refactored stop/restart for better stability
899
900## 0.12.7
901
902- pm2 logs : Now shows merged logs
903- Fix #929 #1043 : Bug pm2 stop/restart not working properly
904- Fix #1039 : Better algorithm for vision recursive parsing to avoid infinite loops
905- Automatize #858 #905: Directly init pm2 folder if not present when using it programmatically
906- Add Bus system from PM2 programmatic API
907
908## 0.12.6
909
910- Enhancement of startJson command (force_name and additional_env options)
911- Fix #990 : pm2 flush while pm2 logs was open bug
912- Fix #1002 : pm2 monit bug
913- Fix #1024 : enhancement
914- Fix #1011 : json-stringify-safe bug
915- Fix #1007 ##1028 #1013 #1009 : pm2 desc bug
916- Fix : pm2 interact delete when file doesn't exist bug
917
918## 0.12.5
919
920- Windows support
921
922## 0.12.4
923
924- Never start a process that already has a PID [#938]
925- 1. Make platform auto detecting. 2. Support darwin startup script. [#936]
926- Fix #857 #935, add scriptArgs back [d61d710]
927- Fix broken link upstart [f8ff296]
928- Fixed: multiple calls to vizion.parse() for the same process [0e798b1]
929- fix 2015 test easter egg - Happy New Year! [85d11d5]
930- fixes #906 [#911]
931- Add back automatic coffee interpreter #488 #901 [e9a69fe]
932- Upgrade cli-table, commander, colors, moment dependencies [0cc58ce][a4b7d8d]
933- Domain system to patch fix the exception thrown by the cluster module
934- Fix #830 #249 #954 when there is no HOME env to default to /etc/.pm2 [17d022c]
935
936## 0.12.3
937
938- fixed critical bug: `process.env` flattens all env-vars [#898]
939- npm maintainers format [#894]
940- fix `pm2 desc` crash bug [#892]
941- fix CLI typo [#888]
942- `port` config [#885]
943
944## 0.12.2
945
946- treeKill copyright and update [#848] [#849]
947- Allow environment variables per each ecosystem deploy [#847]
948- max-memory-restart option [#697] [#141]
949- JSON validation (cf ADVANCED_README.md) [#768] [#838]
950- CLI/JSON refactoring
951- watch fixes
952- execute binary softwares
953- node_args refactored (ESC support) [#838]
954- reload env graceful and peaceful [#838]
955- min_uptime added [#838]
956- startOrRestart conf.json does update environment variables [#805]
957- vizion only refresh ahead and unstaged flags [f1f829c]
958- worker restart cluster process if it's equal to 0 && online [c2e3581]
959- pm2 pull <name> [commit_id] [c2e3581] [4021902]
960- fix reloadLogs for fork mode [c0143cc][197781e]
961- waterfall logs stream [#822]
962- --log option to have a merged error and out output [#822]
963- God core refactors
964- test refactoring
965- update isBinaryFile [636fd99]
966- pid deletion has been resurected [f2ce631]
967- worker refactor [29fc72b]
968- fix no color [3feead2]
969- upgrade chokidar 0.12 with follow symlink [4ac0e74]
970- refactor Reload [cf94517][f1eb17]
971- avoid truncate with pm2 logs command [26aff8b]
972- God print log with timestamp via PM2_LOG_DATE_FORMAT [bf2bf8a][3eaed07]
973- better test suit
974- new treekill system [11fe5f4]
975
976Big thanks to @Tjatse !
977
978## 0.12.1
979
980- Harden Lock system
981- Fix Worker bug / Refactor Worker
982- Cleanly close interactor sockets on end
983- Add backward compatibility for older PM2 on kill action via system signal SIGQUIT
984- once listener for killDaemon
985
986## 0.12.0 - clear water ops
987
988- better ecosystem.json5 file with embedded comments
989- startOrRestart conf.json update environment variables #805 #812
990- pm2 start my/bin/file work out of the box
991- JSON5 support
992- PM2_HOME supported - PM2 files paths relocation (logs, pid) via PM2_HOME option
993- post_updates commands are searched in process.json/ecosystem.json/package.json
994- Worker system to verify up to date repositories
995- Rename process running with PM2 <version> - app_name
996- Process Lock system
997- Inner iteraction with PM2 possible #782
998- Better vizion system
999- backward / forward / pull command
1000- Doc moved to doc
1001- remove uidnumber module
1002- pre install / post install scripts removed
1003- Remote Lock System
1004- More God tests
1005- GRACEFUL_LISTEN_TIMEOUT constant configurable
1006- Logs are closed in Fork mode when reloading
1007- Fix not tty
1008- Fix cluster structure nullification
1009- Pre Windows Support
1010- Send revision process on each process event
1011- Upgrade Commander (better help display)
1012- Upgrade chokidar to 0.10.x
1013- Better interactor
1014- Better revision parsing
1015- Configuration file
1016- Close fd in fork mode while reloading
1017- Remove --run-as-user option
1018- Better CLI interface for interactor
1019- axm:monitor axm:dynamic
1020- Temporaly merge pm2-interface with pm2
1021- Cache cpu infos
1022- Make revision transit in God.bus broadcast
1023- Ignore useless events in God.bus broadcast
1024
1025## 0.11.0-1
1026
1027- Multi user support and privilege containment: UNIX sockets instead of TCP
1028- Reload refactoring
1029- Process on uncaughtexcption to flush process list
1030- pm2 logs display state change of processes
1031
1032## 0.10.x
1033
1034- multi host for pm2 deploy
1035- fork mode by default
1036- fix watch on clusters
1037- refactor watch
1038- env option via programmatic interface
1039- fix watch system
1040- correct pm2 describe command
1041- close file used via pm2 flush
1042- add startOrReload
1043- better closing events
1044
1045## 0.10.0 - PM2 Hellfire release
1046
1047- PM2 hearth code has been refactored and now it handles extreme scenario without any leak or bug
1048- PM2 restart <json|id|name|all> refresh current environment variables #528
1049- PM2 delete all more verbose
1050- PM2 reset <all|id|name> reset restart numbers
1051- Auto update script at PM2 installation
1052- --watch enhanced to avoid zombie processes
1053- Restart app when reaching a limit of memory by using --max-memory-restart (and max_memory_restart via JSON)(https://github.com/Unitech/pm2#max-memory-restart)
1054- PM2 respects strong unix standard process management
1055- Remove timestamps by default with pm2 logs
1056- Coffeescript not enabled by default anymore (enhance memory usage)
1057- PM2 Programmatic interface enhanced
1058- PM2 hearth refactor
1059- PM2 describe show node-args
1060- node_args for V8 options is now available via JSON declaration
1061- Watch system avoid ghost processes
1062- Memory leak fixes
1063- Better performance on interface
1064- Fix tests
1065- Enable PM2_NODE_OPTIONS and node-args for fork mode
1066- Dependencies updated
1067- Faster monitoring system
1068- AXM actions unification
1069- Socket errors handled
1070- Watchdog via Agent - restart automatically PM2 with previous processes in case of crash
1071- PM2_NODE_OPTIONS deprecation (use --node-args instead)
1072
1073## 0.9.6 - 0.9.5 - 0.9.4
1074
1075- Bash test auto exit when failure
1076- Bump fix log streaming
1077- Bump fix to display old logs streaming by default
1078- Bump fix
1079
1080## 0.9.3
1081
1082- Critical bug on fork mode fixed (stream close)
1083- Advanced log display interface pm2-logs #589
1084- Simple log timestamp via --log-date-format (with momentJS formating) #183
1085- Possible to pass arguments via scriptArg with programmatic PM2 #591
1086- Gentoo startup script generation #592
1087- Fix run-as-user and run-as-group in fork mode #582
1088- Documentation update
1089
1090## 0.9.2
1091
1092- max_restart enabled
1093- sudo fix for init scripts
1094- some startup refactoring
1095- Possibility to specify the configuration folder for PM2 via process.env.PM2_HOME
1096- Fix date format
1097- N/A for undefined date
1098- Evented interactions with PM2, available via pm2-interface
1099- Deep Interactor refactoring
1100- Force reload for upstart script
1101
1102## 0.9.0-0.9.1
1103
1104- CLI flattening
1105- require('pm2') possible to interact with
1106- deployment system
1107- Remove builtin monitoring feature
1108- Fix watch on delete #514
1109- Gracefull reload now rightly handled #502
1110- Allow path in watch option #501
1111- Allow management of non-interpreted binaries #499
1112- Documentation fixes
1113
1114## 0.8.12-0.8.15
1115
1116- Version bumping
1117
1118## 0.8.12
1119
1120- Fix CWD option #295
1121
1122## 0.8.10-0.8.11
1123
1124- Builtin monitoring feature with email (with pm2 subscribe)
1125- Reload Logs for Fork
1126- Deletion of possible circular dependencies error
1127- pm2 updatePM2 command to update in-memory pm2
1128- notification message if the in-memory pm2 is outdated
1129- cwd option in json #405 #417 #295
1130- README updates
1131- ipc channel for fork mode
1132- re enable process event loggin for interactor
1133- avoid possible stream error
1134- watch ignore option in JSON
1135
1136## 0.8.5-6
1137
1138- Update monitoring module
1139
1140## 0.8.4
1141
1142- Remove C++ binding for monitoring
1143- Update axon and axon-rpc
1144
1145## 0.8.2
1146
1147- Adds option to switch to a different user/group before starting a managed process #329
1148- watch doesnt watch node_module folder
1149- default log files and pid files location can be overrided by PM2_LOG_DIR / PM2_PID_DIR
1150
1151
1152## 0.8.1
1153
1154- Readme changes #400 #398
1155- Fix describe command #403
1156- reload/gracefulReload throw error if no process has been reloaded #340
1157
1158## 0.8.0
1159
1160- More verbosity to pm2.log
1161- Fast Watch & Reload
1162- New README.md
1163- --merge-logs option to merge logs for a group of process
1164- logs reload with SIGUSR2 or `pm2 reloadLogs`
1165- return failure code when no process has been reloaded
1166- Upgrade of outdated packages
1167- Silent (-s) flag remove all possible pm2 output to CLI
1168- New display for list, more compact
1169- `pm2 describe <id>` to get more details about a process
1170- Fixed 0.10.x issue when stop/kill
1171- Helper shown when -h
1172- Linter errors
1173- Systemd support for Fedora / ArchLinux
1174- #381 Add support for Amazon Linux startup script
1175- Fixed rendering
1176- Interaction possible with VitalSigns.io
1177- Avoid exception when dump file is not present
1178
1179## 0.7.8
1180
1181- List processes with user right `service pm2-init.sh status`
1182
1183## 0.7.7
1184
1185- Bug fixes, stability fixes
1186
1187## 0.7.2
1188
1189- harmony can be enabled [Enabling harmony](#a66)
1190- can pass any options to node via PM2_NODE_OPTIONS, configurable via ~/.pm2/custom_options.sh
1191- pid file written in ~/.pm2/pm2.pid
1192- startup script support for CentOS
1193- --no-daemon option (Alex Kocharin)
1194- json file now can be : started/stoped/restarted/deleted
1195- coffeescript support for new versions (Hao-kang Den)
1196- accept JSON via pipe from standard input (Ville Walveranta)
1197- adjusting logical when process got an uncaughtException (Ethanz)
1198
1199### Update from 0.x -> 0.7.2
1200
1201- CentOS crontab option should not be used anymore and use the new init script with `pm2 startup centos`
1202- If you use the configuration file or the harmonoy option, you should regenerate the init script
1203
1204## 0.7.1
1205
1206- Integrates hardened reload, graceful reload and strengthened process management
1207
1208## 0.7.0
1209
1210- Reload works at 100%
1211- Logs are now separated by process id
1212- Minimal listing with -m option
1213- pid files are deleted once process exit
1214- ping method to launch or knwo if pm2 is alive
1215- more tests
1216- coffeescript is supported in cluster mode
1217- clean exit
1218- clean process stopping
1219- speed process management enhanced
1220- async used instead of recuresive loops
1221- broad test for node 0.11.10 0.11.9 0.11.8 0.11.7 0.11.5 0.10.24 0.10.23 0.10.22 0.10.21 0.10.20 0.10.19 0.10.18 0.10.17 0.10.16 0.10.15 0.10.14 0.10.13 0.10.12 0.10.11 0.8
1222
1223## 0.6.8
1224
1225- Homogeneize JSON #186
1226- Auto intepreter selection (you can do pm2 start app.php)
1227
1228## 0.5.6
1229
1230- Coffeescript support
1231- Updating dependencies - axon - commander
1232- Log feature enhanced - duplicates removed - name or id can be passed to pm2 logs xxx
1233
1234## 0.5.5
1235
1236- Ability to set a name to a launched script + tests
1237 - with the --name option when launching file
1238 - with the "name" parameter for JSON files
1239- Ability to restart a script by name + tests
1240- Upgrade node-usage to 0.3.8 - fix monitoring feedback for MacOSx
1241- require.main now require the right file (activate it by modifying MODIFY_REQUIRE in constants.js)
1242- CentOS startup script with pm2 startup centos
1243- 0 downtime reload
1244
1245## 0.5.4
1246
1247- Remove unused variable in startup script
1248- Add options min_uptime max_restarts when configuring an app with JSON
1249- Remove pid file on process exit
1250- Command stopAll -> stop all | restartAll -> restart all (backward compatible with older versions)
1251
1252## 0.5.0
1253
1254- Hardening tests
1255- Cron mode to restart a script
1256- Arguments fully supported
1257- MacOSx monitoring possible