public
Fork of mojombo/god
Description: Ruby process monitor
Homepage: http://god.rubyforge.org
Clone URL: git://github.com/Bertg/god.git
commit  6dcfaa880de4efdd196a99c0bbbb1e21c4685aa3
tree    879cda8af0cb19c6a4484b8f07f781124bef3a06
parent  889de6651b36d3eba10ac4afd6ea40eaa1aa84b5
god / History.txt
100644 105 lines (91 sloc) 4.936 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
== 0.5.0
 
* Major Enhancements
  * Implement lifecycle scoped metric to allow for cross-state conditions
  * Add TriggerCondition for conditions that need info about state changes
  * Implement notification system
  * Add Tasks (a generalization of Watches) to do non-process related tasks
  * Add example init.d file in GOD_INSTALL_DIR/init/god
  * Add human readable info to conditions (and make low level log lines debug)
* Minor Enchancements
  * Allow EventConditions to do transition overloading
  * Report errors during god startup instead of failing silently
  * Make transition block optional (default to Always condition returning true)
  * Better usage info for `god --help`
  * Report usage when just `god` is run
  * Explain what's going on when attempting to rebind to an in-use port
  * Add -b option to god binary to auto-bind to an unused port
  * Add `god quit` to stop god without stopping any tasks
* New Conditions
  * Flapping < TriggerCondition - trigger on state change
  * HttpResponseCode < PollCondition - trigger on http response code or timeout (thx scott becker)
* New Contacts
  * Email < Contact - notify via email (smtp, sendmail)
* Bug Fixes
  * Fix abort not aborting problem
  * Fix -p option not working for god binary
  * Fix God.init not accepting block (thx _eric)
  * Fix SIGHUP ignore (thx _eric)
 
== 0.4.3 / 2007-09-10
* Bug Fixes
  * fix Process#alive? to not raise on no such file (affects `god terminate`)
 
== 0.4.2 / 2007-09-10
* Bug Fixes
  * fix netlink buffer issue that prevented events on Linux from working consistently [dkresge]
 
== 0.4.1 / 2007-09-10
* Bug Fixes
  * require 'stringio' for ruby 1.8.5
 
== 0.4.0 / 2007-09-10
 
* Major Enhancements
  * Add the ability for conditions to override transition state (for exceptional cases)
  * Implement dynamic load of config files while god is running (god load <filename>)
  * Add ability to save auto-daemonized process output to a log file
  * Add robust default stop lambda command for auto-daemonized processes (inspired by _eric)
  * Add status command for god binary (shows status of each watch)
  * Create proper logger with timestamps
  * Add log command to god binary to get real time logs for a specific watch from a running god instance
  * Add terminate command for god binary (stop god and all watches)
* Minor Enhancements
  * Enforce validity of Watches
  * Enforce that God.init is not called after a Watch
  * Move pid_file_directory creation and validation to God.start
  * Remove check for at least one Watch during startup (now that dynamic loading exists)
* New Conditions
  * Tries < PollCondition - triggers after the specified number of tries
  * Add :notify_when_flapping behavior to check for oscillation [kevinclark]
  * Add :degrading_lambda condition. [kevinclark]
    It uses a decaying interval (1/2 rate) for 3 cycles before failing.
* Bug Fixes
  * Use exit!(0) instead of exit! in god binary to exit with code 0 (instead of default -1)
  * Command line group control fixed
  * Fix cross-thread return problem
 
== 0.3.0 / 2007-08-17
 
* Fix netlink header problem on Ubuntu Edgy [Dan Sully]
* Add uid/gid setting for processes [kevinclark]
* Add autostart flag for watches so they don't necessarily startup with god [kevinclark]
* Change command line call options for god binary to accommodate watch start/stop functionality
* Add individual start/stop/restart grace periods for finer grained control
* Change default DRb port to 17165 ('god'.to_i(32))
* Implement command line control to start/restart/stop/monitor/unmonitor watches/groups by name
* Watches can now belong to a group that can be controlled as a whole
* Allow god to be installed (sans events) on systems that don't support events
* Daemonize and handle PID files for non-daemonizing scripts [kevinclark]
* Fix simple mode lifecycle gap
* Remove necessity to specify pid_file for conditions
* Change config file to use God.init and God.watch directly instead of God.meddle block
* Move god binary command logic to main library
* Enhance god binary with better reporting
* Fix synchronization bug in Timer (reported by Srini Panguluri)
* Add Lambda condition for easy custom conditions [Mike Mintz]
* Add sugar for numerics (seconds, minutes, kilobytes, megabytes, percent, etc)
* Add optional PID and log file generation to god binary for daemon mode
* Add God.load to do glob enabled loading
* Add -V option to god binary for detailed version/build info
 
== 0.2.0 / 2007-07-18
 
* Rewrote innards to use a state and event based lifecycle
* Basic support for events via kqueue (bsd/darwin) and netlink/pec (linux) [kevinclark]
* Added advanced syntax (simple syntax calls advanced api underneath)
* Condition returns have changed meaning. With simple syntax, a true return activates block
* Updated http://god.rubyforge.org with updated simple config and new advanced config
 
== 0.1.0 / 2007-07-07
 
* 1 major enhancement
  * Birthday!