queso-daemon-kit 0.1.7.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Configuration.txt +110 -0
- data/Deployment.txt +113 -0
- data/History.txt +97 -0
- data/Logging.txt +92 -0
- data/Manifest.txt +166 -0
- data/PostInstall.txt +6 -0
- data/README.rdoc +130 -0
- data/Rakefile +37 -0
- data/RuoteParticipants.txt +113 -0
- data/TODO.txt +37 -0
- data/app_generators/daemon_kit/USAGE +7 -0
- data/app_generators/daemon_kit/daemon_kit_generator.rb +161 -0
- data/app_generators/daemon_kit/templates/README +48 -0
- data/app_generators/daemon_kit/templates/Rakefile +6 -0
- data/app_generators/daemon_kit/templates/bin/daemon.erb +7 -0
- data/app_generators/daemon_kit/templates/config/arguments.rb +12 -0
- data/app_generators/daemon_kit/templates/config/boot.rb +68 -0
- data/app_generators/daemon_kit/templates/config/environment.rb +23 -0
- data/app_generators/daemon_kit/templates/config/environments/development.rb +2 -0
- data/app_generators/daemon_kit/templates/config/environments/production.rb +2 -0
- data/app_generators/daemon_kit/templates/config/environments/test.rb +2 -0
- data/app_generators/daemon_kit/templates/config/post-daemonize/readme +5 -0
- data/app_generators/daemon_kit/templates/config/pre-daemonize/readme +12 -0
- data/app_generators/daemon_kit/templates/lib/daemon.rb +2 -0
- data/app_generators/daemon_kit/templates/libexec/daemon.erb +18 -0
- data/app_generators/daemon_kit/templates/script/console +3 -0
- data/app_generators/daemon_kit/templates/script/destroy +14 -0
- data/app_generators/daemon_kit/templates/script/generate +14 -0
- data/bin/daemon_kit +18 -0
- data/daemon_generators/amqp/USAGE +5 -0
- data/daemon_generators/amqp/amqp_generator.rb +65 -0
- data/daemon_generators/amqp/templates/config/amqp.yml +28 -0
- data/daemon_generators/amqp/templates/config/initializers/amqp.rb +7 -0
- data/daemon_generators/amqp/templates/libexec/daemon.rb +37 -0
- data/daemon_generators/cron/USAGE +5 -0
- data/daemon_generators/cron/cron_generator.rb +64 -0
- data/daemon_generators/cron/templates/config/initializers/cron.rb +11 -0
- data/daemon_generators/cron/templates/libexec/daemon.rb +43 -0
- data/daemon_generators/cucumber/USAGE +11 -0
- data/daemon_generators/cucumber/cucumber_generator.rb +38 -0
- data/daemon_generators/cucumber/templates/cucumber +8 -0
- data/daemon_generators/cucumber/templates/cucumber.rake +13 -0
- data/daemon_generators/cucumber/templates/cucumber_environment.rb +2 -0
- data/daemon_generators/cucumber/templates/env.rb +7 -0
- data/daemon_generators/deploy_capistrano/deploy_capistrano_generator.rb +35 -0
- data/daemon_generators/deploy_capistrano/templates/Capfile +10 -0
- data/daemon_generators/deploy_capistrano/templates/USAGE +10 -0
- data/daemon_generators/deploy_capistrano/templates/config/deploy.rb +53 -0
- data/daemon_generators/deploy_capistrano/templates/config/deploy/production.rb +6 -0
- data/daemon_generators/deploy_capistrano/templates/config/deploy/staging.rb +6 -0
- data/daemon_generators/deploy_capistrano/templates/config/environments/staging.rb +0 -0
- data/daemon_generators/jabber/USAGE +5 -0
- data/daemon_generators/jabber/jabber_generator.rb +65 -0
- data/daemon_generators/jabber/templates/config/initializers/jabber.rb +7 -0
- data/daemon_generators/jabber/templates/config/jabber.yml +26 -0
- data/daemon_generators/jabber/templates/libexec/daemon.rb +27 -0
- data/daemon_generators/nanite_agent/USAGE +5 -0
- data/daemon_generators/nanite_agent/nanite_agent_generator.rb +68 -0
- data/daemon_generators/nanite_agent/templates/config/initializers/nanite_agent.rb +6 -0
- data/daemon_generators/nanite_agent/templates/config/nanite.yml +35 -0
- data/daemon_generators/nanite_agent/templates/lib/actors/sample.rb +11 -0
- data/daemon_generators/nanite_agent/templates/libexec/daemon.rb +31 -0
- data/daemon_generators/rspec/USAGE +5 -0
- data/daemon_generators/rspec/rspec_generator.rb +55 -0
- data/daemon_generators/rspec/templates/spec.rb +11 -0
- data/daemon_generators/rspec/templates/spec/spec.opts +1 -0
- data/daemon_generators/rspec/templates/spec/spec_helper.rb +21 -0
- data/daemon_generators/rspec/templates/tasks/rspec.rake +21 -0
- data/daemon_generators/ruote/USAGE +5 -0
- data/daemon_generators/ruote/ruote_generator.rb +67 -0
- data/daemon_generators/ruote/templates/config/amqp.yml +30 -0
- data/daemon_generators/ruote/templates/config/initializers/ruote.rb +13 -0
- data/daemon_generators/ruote/templates/config/ruote.yml +23 -0
- data/daemon_generators/ruote/templates/lib/daemon.rb +4 -0
- data/daemon_generators/ruote/templates/lib/sample.rb +26 -0
- data/daemon_generators/ruote/templates/libexec/daemon.rb +33 -0
- data/lib/daemon_kit.rb +62 -0
- data/lib/daemon_kit/abstract_logger.rb +235 -0
- data/lib/daemon_kit/amqp.rb +38 -0
- data/lib/daemon_kit/application.rb +187 -0
- data/lib/daemon_kit/arguments.rb +165 -0
- data/lib/daemon_kit/commands/console.rb +38 -0
- data/lib/daemon_kit/config.rb +108 -0
- data/lib/daemon_kit/console_daemon.rb +2 -0
- data/lib/daemon_kit/core_ext.rb +1 -0
- data/lib/daemon_kit/core_ext/configurable.rb +96 -0
- data/lib/daemon_kit/core_ext/string.rb +22 -0
- data/lib/daemon_kit/cron.rb +48 -0
- data/lib/daemon_kit/cucumber/world.rb +38 -0
- data/lib/daemon_kit/deployment/capistrano.rb +482 -0
- data/lib/daemon_kit/em.rb +43 -0
- data/lib/daemon_kit/error_handlers/base.rb +32 -0
- data/lib/daemon_kit/error_handlers/hoptoad.rb +60 -0
- data/lib/daemon_kit/error_handlers/mail.rb +85 -0
- data/lib/daemon_kit/exceptions.rb +15 -0
- data/lib/daemon_kit/initializer.rb +438 -0
- data/lib/daemon_kit/jabber.rb +170 -0
- data/lib/daemon_kit/nanite.rb +7 -0
- data/lib/daemon_kit/nanite/agent.rb +56 -0
- data/lib/daemon_kit/pid_file.rb +61 -0
- data/lib/daemon_kit/ruote_participants.rb +119 -0
- data/lib/daemon_kit/ruote_pseudo_participant.rb +68 -0
- data/lib/daemon_kit/ruote_workitem.rb +169 -0
- data/lib/daemon_kit/safety.rb +85 -0
- data/lib/daemon_kit/tasks.rb +2 -0
- data/lib/daemon_kit/tasks/environment.rake +10 -0
- data/lib/daemon_kit/tasks/framework.rake +120 -0
- data/lib/daemon_kit/tasks/god.rake +62 -0
- data/lib/daemon_kit/tasks/log.rake +8 -0
- data/lib/daemon_kit/tasks/monit.rake +29 -0
- data/script/console +10 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/script/txt2html +71 -0
- data/spec/abstract_logger_spec.rb +126 -0
- data/spec/argument_spec.rb +70 -0
- data/spec/config_spec.rb +79 -0
- data/spec/configurable_spec.rb +56 -0
- data/spec/daemon_kit_spec.rb +7 -0
- data/spec/error_handlers_spec.rb +23 -0
- data/spec/fixtures/env.yml +15 -0
- data/spec/fixtures/noenv.yml +4 -0
- data/spec/initializer_spec.rb +26 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +27 -0
- data/tasks/rspec.rake +21 -0
- data/templates/god/god.erb +69 -0
- data/templates/monit/monit.erb +14 -0
- data/test/test_amqp_generator.rb +48 -0
- data/test/test_cron_generator.rb +45 -0
- data/test/test_daemon-kit_generator.rb +84 -0
- data/test/test_daemon_kit_config.rb +28 -0
- data/test/test_deploy_capistrano_generator.rb +48 -0
- data/test/test_generator_helper.rb +29 -0
- data/test/test_helper.rb +7 -0
- data/test/test_jabber_generator.rb +49 -0
- data/test/test_nanite_agent_generator.rb +49 -0
- data/test/test_ruote_generator.rb +45 -0
- data/vendor/tmail-1.2.3/tmail.rb +5 -0
- data/vendor/tmail-1.2.3/tmail/address.rb +426 -0
- data/vendor/tmail-1.2.3/tmail/attachments.rb +46 -0
- data/vendor/tmail-1.2.3/tmail/base64.rb +46 -0
- data/vendor/tmail-1.2.3/tmail/compat.rb +41 -0
- data/vendor/tmail-1.2.3/tmail/config.rb +67 -0
- data/vendor/tmail-1.2.3/tmail/core_extensions.rb +63 -0
- data/vendor/tmail-1.2.3/tmail/encode.rb +581 -0
- data/vendor/tmail-1.2.3/tmail/header.rb +960 -0
- data/vendor/tmail-1.2.3/tmail/index.rb +9 -0
- data/vendor/tmail-1.2.3/tmail/interface.rb +1130 -0
- data/vendor/tmail-1.2.3/tmail/loader.rb +3 -0
- data/vendor/tmail-1.2.3/tmail/mail.rb +578 -0
- data/vendor/tmail-1.2.3/tmail/mailbox.rb +495 -0
- data/vendor/tmail-1.2.3/tmail/main.rb +6 -0
- data/vendor/tmail-1.2.3/tmail/mbox.rb +3 -0
- data/vendor/tmail-1.2.3/tmail/net.rb +248 -0
- data/vendor/tmail-1.2.3/tmail/obsolete.rb +132 -0
- data/vendor/tmail-1.2.3/tmail/parser.rb +1476 -0
- data/vendor/tmail-1.2.3/tmail/port.rb +379 -0
- data/vendor/tmail-1.2.3/tmail/quoting.rb +118 -0
- data/vendor/tmail-1.2.3/tmail/require_arch.rb +58 -0
- data/vendor/tmail-1.2.3/tmail/scanner.rb +49 -0
- data/vendor/tmail-1.2.3/tmail/scanner_r.rb +261 -0
- data/vendor/tmail-1.2.3/tmail/stringio.rb +280 -0
- data/vendor/tmail-1.2.3/tmail/utils.rb +337 -0
- data/vendor/tmail-1.2.3/tmail/version.rb +39 -0
- data/vendor/tmail.rb +13 -0
- metadata +281 -0
data/Configuration.txt
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
= Configuring your daemon
|
|
2
|
+
|
|
3
|
+
daemon-kit provides a multitude of ways to configure your daemon, this document
|
|
4
|
+
will outline the different options available to you.
|
|
5
|
+
|
|
6
|
+
== Configuration files and #DaemonKit::Config
|
|
7
|
+
|
|
8
|
+
#DaemonKit::Config gives you easy access to any YAML configuration
|
|
9
|
+
files you have in your <em>config</em> directory.
|
|
10
|
+
|
|
11
|
+
You can access the configuration files like this:
|
|
12
|
+
|
|
13
|
+
config = DaemonKit::Config.load('sample')
|
|
14
|
+
|
|
15
|
+
The above snippet relies on the presence of a <em>config/sample.yml</em> file.
|
|
16
|
+
|
|
17
|
+
#DaemonKit::Config is environment aware, so configuration files are
|
|
18
|
+
parsed for a top-level key that is the same as the value of
|
|
19
|
+
<em>DAEMON_ENV</em>, and if present is loaded into the object as the
|
|
20
|
+
configuration data. If the key is not present, the whole YAML
|
|
21
|
+
document is exposed as configuration data.
|
|
22
|
+
|
|
23
|
+
== Command line arguments
|
|
24
|
+
|
|
25
|
+
The most flexible way to configure your daemon is through command line
|
|
26
|
+
arguments, or switches.
|
|
27
|
+
|
|
28
|
+
DaemonKit includes a couple of its own arguments that can be used:
|
|
29
|
+
|
|
30
|
+
-e ENV (or --env ENV) to set the daemon environment
|
|
31
|
+
--pid /path/to/pidfile to set the path to a pidfile
|
|
32
|
+
-l path (or --log path) to set the path for the log file
|
|
33
|
+
-v shows the DaemonKit version
|
|
34
|
+
-h shows a useful help message
|
|
35
|
+
|
|
36
|
+
=== Custom arguments
|
|
37
|
+
|
|
38
|
+
It is possible for you to specify your own arguments as well, by
|
|
39
|
+
updating the <em>config/arguments.rb</em> file. This file is eval'd
|
|
40
|
+
inside #DaemonKit::Arguments and gives you access to the following two
|
|
41
|
+
variables:
|
|
42
|
+
|
|
43
|
+
* opts - Instance of OptionParser[http://www.ruby-doc.org/stdlib/libdoc/optparse/rdoc/classes/OptionParser.html]
|
|
44
|
+
* @options - A standard Ruby hash that you can populate and access later
|
|
45
|
+
|
|
46
|
+
Your custom arguments can be accessed like this:
|
|
47
|
+
|
|
48
|
+
DaemonKit.arguments.options
|
|
49
|
+
|
|
50
|
+
=== Advanced Configuration
|
|
51
|
+
|
|
52
|
+
All the writable attributes of the default #DaemonKit::Configuration
|
|
53
|
+
instance call also be modified from the command line using the special
|
|
54
|
+
<em>--config</em> arguments:
|
|
55
|
+
|
|
56
|
+
--config force_kill_wait=30
|
|
57
|
+
|
|
58
|
+
This happens after <em>config/environment.rb</em> is processed, so all
|
|
59
|
+
command line arguments will overwrite those values.
|
|
60
|
+
|
|
61
|
+
=== Daemon umask
|
|
62
|
+
|
|
63
|
+
By default daemon processes run with a umask of 022, but this can be changed
|
|
64
|
+
on the command line or in +config/environment.rb+.
|
|
65
|
+
|
|
66
|
+
To set a more restrictive umask via command line arguments, you can start your
|
|
67
|
+
daemon like this:
|
|
68
|
+
|
|
69
|
+
$ ./bin/daemon start --config umask=0077
|
|
70
|
+
|
|
71
|
+
Or the same in +config/environment.rb+
|
|
72
|
+
|
|
73
|
+
DaemonKit::Initializer.run do |config|
|
|
74
|
+
# ...
|
|
75
|
+
|
|
76
|
+
# restrictive umask
|
|
77
|
+
config.umask = 0077
|
|
78
|
+
|
|
79
|
+
# ...
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
=== Privilege Separation
|
|
83
|
+
|
|
84
|
+
By default daemon processes run as the user that starts them, inheriting all
|
|
85
|
+
their privileges (or lack thereof). Getting daemon-kit to drop privileges
|
|
86
|
+
can currently only be done using command-line parameters, and only works
|
|
87
|
+
reliable on *nix (OSX seemed cranky at the time of testing).
|
|
88
|
+
|
|
89
|
+
$ ./bin/daemon start --config user=nobody --config group=nobody
|
|
90
|
+
|
|
91
|
+
Privileges are dropped at the earliest possible phase of starting the daemon.
|
|
92
|
+
|
|
93
|
+
Things to note on privilege separation:
|
|
94
|
+
|
|
95
|
+
* You generally have to be root to be able to perform this
|
|
96
|
+
* File system permissions for +log/+ needs to be correct
|
|
97
|
+
* Daemon-kit will only shed privileges on the +start+ command, not on +run+
|
|
98
|
+
* Make sure your code is secure if accepting stuff from the outside world
|
|
99
|
+
* The daemon will continue to run if it failed, this is because the feature is experimental and could change in the future.
|
|
100
|
+
* The damon logs the reduced privileges in the log file shortly after booting, please check it carefully
|
|
101
|
+
|
|
102
|
+
The implementation stems from the advice given by Joe Damato on his blog post
|
|
103
|
+
http://timetobleed.com/tag/privilege-escalation/
|
|
104
|
+
|
|
105
|
+
IMPORTANT NOTE FOR OSX USERS:
|
|
106
|
+
|
|
107
|
+
Testing on my iBook with OSX 10.5.8 using Ruby 1.8.6-p287 failed to drop
|
|
108
|
+
privileges correctly because of the 'nobody' user's UID being too large
|
|
109
|
+
(Bignum), however testing with Ruby 1.9.1-p129 on OSX 10.5.8 did work as
|
|
110
|
+
expected.
|
data/Deployment.txt
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
= Deploying your daemons
|
|
2
|
+
|
|
3
|
+
daemon-kit provides built-in support for
|
|
4
|
+
Capistrano[http://www.capify.org] deployments, using a customized
|
|
5
|
+
version of the standard 'deploy' recipe for Ruby on Rails
|
|
6
|
+
applications.
|
|
7
|
+
|
|
8
|
+
User of Vlad[http://hitsquad.rubyforge.org/vlad/]? Get in touch so we
|
|
9
|
+
can discuss your contribution to daemon-kit ;)
|
|
10
|
+
|
|
11
|
+
== Generating capistrano configurations
|
|
12
|
+
|
|
13
|
+
When generating a new daemon, you can pass the <em>-d capistrano</em>
|
|
14
|
+
argument to the <em>daemon_kit</em> command. In case you already have
|
|
15
|
+
a generated daemon, run the following command inside your project:
|
|
16
|
+
|
|
17
|
+
$ ruby script/generate deploy_capistrano
|
|
18
|
+
|
|
19
|
+
== Overview of generated configurations
|
|
20
|
+
|
|
21
|
+
The generator creates the following files worth noticing:
|
|
22
|
+
|
|
23
|
+
config/deploy.rb
|
|
24
|
+
config/deploy/*.rb
|
|
25
|
+
|
|
26
|
+
The generator also creates a new environment for you, a
|
|
27
|
+
<em>staging</em> environment. Useful for testing your deployments
|
|
28
|
+
before taking anything into production.
|
|
29
|
+
|
|
30
|
+
== Configuring capistrano
|
|
31
|
+
|
|
32
|
+
For each environment (staging & production) you only need to specify
|
|
33
|
+
the target hosts in <em>config/deploy/(staging|production).rb</em>.
|
|
34
|
+
|
|
35
|
+
Each of the stub files have example configuration values you can just
|
|
36
|
+
edit.
|
|
37
|
+
|
|
38
|
+
The rest of your configuration generally occurs in
|
|
39
|
+
<em>config/deploy.rb</em>.
|
|
40
|
+
|
|
41
|
+
Everything works exactly like standard capistrano, with the exception
|
|
42
|
+
of the following directives:
|
|
43
|
+
|
|
44
|
+
* :config_files
|
|
45
|
+
* :shared_children
|
|
46
|
+
|
|
47
|
+
=== :config_files
|
|
48
|
+
|
|
49
|
+
Since the daemon configuration files will almost always differ between
|
|
50
|
+
your development environment and your staging/production environment,
|
|
51
|
+
the deployment recipe makes adequate provision for this.
|
|
52
|
+
|
|
53
|
+
Use the :config_files directive to set an array of file names from the
|
|
54
|
+
<em>config</em> directory that you want replaced with production
|
|
55
|
+
configuration files found on the server:
|
|
56
|
+
|
|
57
|
+
set :config_files, %w{ amqp.yaml }
|
|
58
|
+
|
|
59
|
+
On your target server, in the <em>:deploy_to</em> folder, create a
|
|
60
|
+
<em>config</em> directory and place your configuration files in
|
|
61
|
+
there. One each deploy, capistrano will rename the files in your
|
|
62
|
+
deployed configuration directory with a <em>.orig</em> extension, and copy
|
|
63
|
+
the files from <em>:deploy_to/config</em> into the newly deployed
|
|
64
|
+
release.
|
|
65
|
+
|
|
66
|
+
This makes it easy to keep production configurations out of your
|
|
67
|
+
working directories or version control systems.
|
|
68
|
+
|
|
69
|
+
=== :shared_children
|
|
70
|
+
|
|
71
|
+
The original capistrano recipe that daemon-kit's recipe is built from
|
|
72
|
+
provided support for tracking shared directories between
|
|
73
|
+
deployments. This works by removing the deployed directory, and
|
|
74
|
+
creating a symlink from <em>:deploy_to/shared/</em> into the correct
|
|
75
|
+
location within the deployed release.
|
|
76
|
+
|
|
77
|
+
You specify your list of directories with the
|
|
78
|
+
<em>:shared_children</em>, each being relative to the DAEMON_ROOT.
|
|
79
|
+
|
|
80
|
+
set :shared_children, %w{ log }
|
|
81
|
+
|
|
82
|
+
The daemon-kit deployment recipe makes no assumptions on shared
|
|
83
|
+
directories, and gives you full control. The default only includes the
|
|
84
|
+
log directory, which you can remove if you want separate log
|
|
85
|
+
directories for each deployed release.
|
|
86
|
+
|
|
87
|
+
== Remote dependencies
|
|
88
|
+
|
|
89
|
+
By default, the deployment configuration file is configured to check
|
|
90
|
+
the remote dependencies before updating the code on the target
|
|
91
|
+
host. You can disable this behaviour by commenting out the following
|
|
92
|
+
line:
|
|
93
|
+
|
|
94
|
+
before "deploy:update_code", "deploy:check"
|
|
95
|
+
|
|
96
|
+
The only default remote dependency is the daemon-kit gem, and it will
|
|
97
|
+
check for the same version you currently have installed (or a later
|
|
98
|
+
one).
|
|
99
|
+
|
|
100
|
+
== More capistrano resources
|
|
101
|
+
|
|
102
|
+
To see a list of available commands, please run the following command
|
|
103
|
+
in the root of your project:
|
|
104
|
+
|
|
105
|
+
$ cap -vT
|
|
106
|
+
|
|
107
|
+
For more information on capistrano, please refer to the following list
|
|
108
|
+
of online resources:
|
|
109
|
+
|
|
110
|
+
* Capistrano Website[http://www.capify.org]
|
|
111
|
+
* Capistrano Wiki[http://wiki.capify.org]
|
|
112
|
+
* Capistrano Group[http://groups.google.com/group/capistrano]
|
|
113
|
+
* #capistrano on Freenode
|
data/History.txt
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
== 0.1.7.10 (2009-08-12)
|
|
2
|
+
|
|
3
|
+
* Ruote remote participants
|
|
4
|
+
* Allow process umask to be configured, defaults to 022
|
|
5
|
+
* Updates to DaemonKit::Config hashes
|
|
6
|
+
* Fixed argument parsing bug (reported by Mathijs Kwik (bluescreen303)
|
|
7
|
+
* Support for privilege separation (See Configuration.txt)
|
|
8
|
+
|
|
9
|
+
== 0.1.7.9 2009-06-22
|
|
10
|
+
|
|
11
|
+
* Backtraces only logged on unclean shutdown
|
|
12
|
+
* AMQP generator got new keep alive code
|
|
13
|
+
|
|
14
|
+
== 0.1.7.8 2009-06-22
|
|
15
|
+
|
|
16
|
+
* Optional logging of all exceptions when the daemon process dies
|
|
17
|
+
unexpectedly
|
|
18
|
+
* Update generated environment.rb to reflect new backtraces option
|
|
19
|
+
|
|
20
|
+
== 0.1.7.7 2009-06-22
|
|
21
|
+
|
|
22
|
+
* Fixed compatibility with rufus-scheduler-2.0.0 (or newer) in cron
|
|
23
|
+
generator
|
|
24
|
+
* Started central eventmachine reactor management code
|
|
25
|
+
* Now depends on eventmachine
|
|
26
|
+
|
|
27
|
+
== 0.1.7.6 (Not released)
|
|
28
|
+
|
|
29
|
+
* Support for cucumber
|
|
30
|
+
* Fixed issue in daemon_kit:upgrade task
|
|
31
|
+
* Moved rspec generator into new home
|
|
32
|
+
* Removed conflicting rubigen generator, messed with our script directory
|
|
33
|
+
* Fixed bug where environment.rb overwrites some --config values (reported by Josh Owens)
|
|
34
|
+
|
|
35
|
+
== 0.1.7.5 2009-06-08
|
|
36
|
+
|
|
37
|
+
* New AbstractLogger
|
|
38
|
+
** Default Logger backend
|
|
39
|
+
** SysLogLogger support
|
|
40
|
+
* More documentation
|
|
41
|
+
|
|
42
|
+
== 0.1.7.4 2009-06-05
|
|
43
|
+
|
|
44
|
+
* Fixed bug with control script generator (thanks Sho Fukamachi)
|
|
45
|
+
* Enhanced deploy.rb template to check for current dk gem verion,
|
|
46
|
+
unless vendored
|
|
47
|
+
* Fix bug in capistrano recipe for restarting daemons
|
|
48
|
+
* Added log:truncate rake task
|
|
49
|
+
* Error mails now handled by TMail
|
|
50
|
+
|
|
51
|
+
== 0.1.7.3 2009-05-31
|
|
52
|
+
|
|
53
|
+
* Removed dependency on daemons gem, now handled in house
|
|
54
|
+
* New argument management
|
|
55
|
+
* Some more docs
|
|
56
|
+
|
|
57
|
+
== 0.1.7.1 2009-05-28
|
|
58
|
+
|
|
59
|
+
* Fixed some minor issue with Capistrano support
|
|
60
|
+
* Added support for generating dog/monit configuration files via rake
|
|
61
|
+
* Initial implementation of ./script/* utilities
|
|
62
|
+
|
|
63
|
+
== 0.1.7 2009-05-26
|
|
64
|
+
|
|
65
|
+
* Capistrano deployment support
|
|
66
|
+
|
|
67
|
+
== 0.1.6 2009-05-13
|
|
68
|
+
|
|
69
|
+
* DaemonKit::Safety class to handle the trapping and logging of
|
|
70
|
+
exceptions, as well as email notifications or Hoptoad notifications.
|
|
71
|
+
* New config/pre-daemonize and config/post-daemonize structure
|
|
72
|
+
* New tasks to simplify upgrading daemon-kit projects
|
|
73
|
+
* Fixed some other annoyances and bugs
|
|
74
|
+
* Bigger TODO list
|
|
75
|
+
|
|
76
|
+
== 0.1.5 2009-05-07
|
|
77
|
+
|
|
78
|
+
* DaemonKit::Config class to easy the use of YAML configs internally,
|
|
79
|
+
and in generated daemons
|
|
80
|
+
|
|
81
|
+
== 0.1.2 2009-04-28
|
|
82
|
+
|
|
83
|
+
* Added missing rubigen dependency
|
|
84
|
+
|
|
85
|
+
== 0.1.1 2009-04-27
|
|
86
|
+
|
|
87
|
+
* AMQP consumer generator added
|
|
88
|
+
* 'cron' style generator added
|
|
89
|
+
* Allow configuring dir_mode and dir (pid file location) (Jim Lindley)
|
|
90
|
+
|
|
91
|
+
== 0.1.0 2009-01-08
|
|
92
|
+
|
|
93
|
+
* Ability to freeze the gem/edge copies of DaemonKit
|
|
94
|
+
* Simple non-evented Jabber generator
|
|
95
|
+
* Flexible UNIX signal trapping configuration
|
|
96
|
+
* Basic generator completed
|
|
97
|
+
* 1 small step for man, 1 giant leap for mankind
|
data/Logging.txt
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
= Logging from inside your daemon
|
|
2
|
+
|
|
3
|
+
Proper logging inside your daemon process is critical, and daemon-kit
|
|
4
|
+
provides you with a great logging facility to (ab)use.
|
|
5
|
+
|
|
6
|
+
== Logging examples
|
|
7
|
+
|
|
8
|
+
From anywhere in your code you can access the
|
|
9
|
+
<em>DaemonKit.logger</em> instance, which is a configured
|
|
10
|
+
DaemonKit::AbstractLogger. It is compatible with Ruby's Logger class
|
|
11
|
+
but is much more verbose to help you gain some insight into your
|
|
12
|
+
running process.
|
|
13
|
+
|
|
14
|
+
DaemonKit.logger.info( "Hello world" )
|
|
15
|
+
|
|
16
|
+
This logs a 'Hello world' line to the log file, complete with the
|
|
17
|
+
calling file name and line number. Log lines look something like this:
|
|
18
|
+
|
|
19
|
+
2009-06-07 23:21:30.248575 capd(32513) [INFO] initializer.rb:91: DaemonKit (0.1.7.4) booted, now running capd
|
|
20
|
+
|
|
21
|
+
Log as much as you can, but be careful not to abuse the <em>info</em>
|
|
22
|
+
level since your log files can become huge. For general processing
|
|
23
|
+
hints, use the <em>debug</em> level.
|
|
24
|
+
|
|
25
|
+
To log exceptions, use the special <em>exception</em> helper:
|
|
26
|
+
|
|
27
|
+
begin
|
|
28
|
+
# dangerous operation
|
|
29
|
+
rescue => e
|
|
30
|
+
DaemonKit.logger.exception( e )
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
== Controlling logging in a running process
|
|
34
|
+
|
|
35
|
+
Logging can be controlled in a running process, either via code or by
|
|
36
|
+
sending UNIX signals to the running process.
|
|
37
|
+
|
|
38
|
+
=== Changing log levels in your code
|
|
39
|
+
|
|
40
|
+
Log levels can be toggled with the <em>level=</em> method:
|
|
41
|
+
|
|
42
|
+
DaemonKit.logger.level = :info
|
|
43
|
+
|
|
44
|
+
Alternatively you can silence all the logging activity for a while
|
|
45
|
+
using the silence helper:
|
|
46
|
+
|
|
47
|
+
DaemonKit.logger.silence do |logger|
|
|
48
|
+
# logger will only report :error or higher levels
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
=== Changing log levels via UNIX signals
|
|
52
|
+
|
|
53
|
+
Send your process the +USR1+ signal to toggle between <em>:debug</em>
|
|
54
|
+
and <em>:info</em> log levels. Sending a +USR2+ signal will force the
|
|
55
|
+
logger into <em>:debug</em> mode (+USR1+ will revert).
|
|
56
|
+
|
|
57
|
+
== Support for log rotation
|
|
58
|
+
|
|
59
|
+
Support for logrotate is baked right into daemon-kit. By sending your
|
|
60
|
+
daemon a +HUP+ signal all the log files file be closed and re-opened
|
|
61
|
+
again on first use. Here is an example logrotate configuration:
|
|
62
|
+
|
|
63
|
+
/path/to/daemon.log {
|
|
64
|
+
rotate 5
|
|
65
|
+
weekly
|
|
66
|
+
postrotate
|
|
67
|
+
kill -HUP `cat /path/to/daemon.pid`
|
|
68
|
+
endscript
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
== Support for syslog logging
|
|
72
|
+
|
|
73
|
+
If you have the
|
|
74
|
+
SyslogLogger[http://seattlerb.rubyforge.org/SyslogLogger/] gem
|
|
75
|
+
installed, you can have your process log to a UNIX syslog server. You
|
|
76
|
+
can change the logging to syslog by either updating your
|
|
77
|
+
<em>environment.rb</em> file like this:
|
|
78
|
+
|
|
79
|
+
config.log_path = :syslog
|
|
80
|
+
|
|
81
|
+
Or by passing 'syslog' as the logfile argument when starting a daemon
|
|
82
|
+
|
|
83
|
+
$ ruby ./bin/daemon start -l syslog
|
|
84
|
+
|
|
85
|
+
The SyslogLogger rdoc's provide configuration examples for configuring
|
|
86
|
+
various UNIX syslog servers.
|
|
87
|
+
|
|
88
|
+
== More logging information
|
|
89
|
+
|
|
90
|
+
If you're running your daemon in the foreground (with the <em>run</em>
|
|
91
|
+
command, you'll get copies of all the log messages on STDOUT, and thus
|
|
92
|
+
voiding the need to tail log files the whole time.
|
data/Manifest.txt
ADDED
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
Configuration.txt
|
|
2
|
+
Deployment.txt
|
|
3
|
+
History.txt
|
|
4
|
+
Logging.txt
|
|
5
|
+
Manifest.txt
|
|
6
|
+
PostInstall.txt
|
|
7
|
+
README.rdoc
|
|
8
|
+
Rakefile
|
|
9
|
+
RuoteParticipants.txt
|
|
10
|
+
TODO.txt
|
|
11
|
+
app_generators/daemon_kit/USAGE
|
|
12
|
+
app_generators/daemon_kit/daemon_kit_generator.rb
|
|
13
|
+
app_generators/daemon_kit/templates/README
|
|
14
|
+
app_generators/daemon_kit/templates/Rakefile
|
|
15
|
+
app_generators/daemon_kit/templates/bin/daemon.erb
|
|
16
|
+
app_generators/daemon_kit/templates/config/arguments.rb
|
|
17
|
+
app_generators/daemon_kit/templates/config/boot.rb
|
|
18
|
+
app_generators/daemon_kit/templates/config/environment.rb
|
|
19
|
+
app_generators/daemon_kit/templates/config/environments/development.rb
|
|
20
|
+
app_generators/daemon_kit/templates/config/environments/production.rb
|
|
21
|
+
app_generators/daemon_kit/templates/config/environments/test.rb
|
|
22
|
+
app_generators/daemon_kit/templates/config/post-daemonize/readme
|
|
23
|
+
app_generators/daemon_kit/templates/config/pre-daemonize/readme
|
|
24
|
+
app_generators/daemon_kit/templates/lib/daemon.rb
|
|
25
|
+
app_generators/daemon_kit/templates/libexec/daemon.erb
|
|
26
|
+
app_generators/daemon_kit/templates/script/console
|
|
27
|
+
app_generators/daemon_kit/templates/script/destroy
|
|
28
|
+
app_generators/daemon_kit/templates/script/generate
|
|
29
|
+
bin/daemon_kit
|
|
30
|
+
daemon_generators/amqp/USAGE
|
|
31
|
+
daemon_generators/amqp/amqp_generator.rb
|
|
32
|
+
daemon_generators/amqp/templates/config/amqp.yml
|
|
33
|
+
daemon_generators/amqp/templates/config/initializers/amqp.rb
|
|
34
|
+
daemon_generators/amqp/templates/libexec/daemon.rb
|
|
35
|
+
daemon_generators/cron/USAGE
|
|
36
|
+
daemon_generators/cron/cron_generator.rb
|
|
37
|
+
daemon_generators/cron/templates/config/initializers/cron.rb
|
|
38
|
+
daemon_generators/cron/templates/libexec/daemon.rb
|
|
39
|
+
daemon_generators/cucumber/USAGE
|
|
40
|
+
daemon_generators/cucumber/cucumber_generator.rb
|
|
41
|
+
daemon_generators/cucumber/templates/cucumber
|
|
42
|
+
daemon_generators/cucumber/templates/cucumber.rake
|
|
43
|
+
daemon_generators/cucumber/templates/cucumber_environment.rb
|
|
44
|
+
daemon_generators/cucumber/templates/env.rb
|
|
45
|
+
daemon_generators/deploy_capistrano/deploy_capistrano_generator.rb
|
|
46
|
+
daemon_generators/deploy_capistrano/templates/Capfile
|
|
47
|
+
daemon_generators/deploy_capistrano/templates/USAGE
|
|
48
|
+
daemon_generators/deploy_capistrano/templates/config/deploy.rb
|
|
49
|
+
daemon_generators/deploy_capistrano/templates/config/deploy/production.rb
|
|
50
|
+
daemon_generators/deploy_capistrano/templates/config/deploy/staging.rb
|
|
51
|
+
daemon_generators/deploy_capistrano/templates/config/environments/staging.rb
|
|
52
|
+
daemon_generators/jabber/USAGE
|
|
53
|
+
daemon_generators/jabber/jabber_generator.rb
|
|
54
|
+
daemon_generators/jabber/templates/config/initializers/jabber.rb
|
|
55
|
+
daemon_generators/jabber/templates/config/jabber.yml
|
|
56
|
+
daemon_generators/jabber/templates/libexec/daemon.rb
|
|
57
|
+
daemon_generators/nanite_agent/USAGE
|
|
58
|
+
daemon_generators/nanite_agent/nanite_agent_generator.rb
|
|
59
|
+
daemon_generators/nanite_agent/templates/config/initializers/nanite_agent.rb
|
|
60
|
+
daemon_generators/nanite_agent/templates/config/nanite.yml
|
|
61
|
+
daemon_generators/nanite_agent/templates/lib/actors/sample.rb
|
|
62
|
+
daemon_generators/nanite_agent/templates/libexec/daemon.rb
|
|
63
|
+
daemon_generators/rspec/USAGE
|
|
64
|
+
daemon_generators/rspec/rspec_generator.rb
|
|
65
|
+
daemon_generators/rspec/templates/spec.rb
|
|
66
|
+
daemon_generators/rspec/templates/spec/spec.opts
|
|
67
|
+
daemon_generators/rspec/templates/spec/spec_helper.rb
|
|
68
|
+
daemon_generators/rspec/templates/tasks/rspec.rake
|
|
69
|
+
daemon_generators/ruote/USAGE
|
|
70
|
+
daemon_generators/ruote/ruote_generator.rb
|
|
71
|
+
daemon_generators/ruote/templates/config/amqp.yml
|
|
72
|
+
daemon_generators/ruote/templates/config/initializers/ruote.rb
|
|
73
|
+
daemon_generators/ruote/templates/config/ruote.yml
|
|
74
|
+
daemon_generators/ruote/templates/lib/daemon.rb
|
|
75
|
+
daemon_generators/ruote/templates/lib/sample.rb
|
|
76
|
+
daemon_generators/ruote/templates/libexec/daemon.rb
|
|
77
|
+
lib/daemon_kit.rb
|
|
78
|
+
lib/daemon_kit/abstract_logger.rb
|
|
79
|
+
lib/daemon_kit/amqp.rb
|
|
80
|
+
lib/daemon_kit/application.rb
|
|
81
|
+
lib/daemon_kit/arguments.rb
|
|
82
|
+
lib/daemon_kit/commands/console.rb
|
|
83
|
+
lib/daemon_kit/config.rb
|
|
84
|
+
lib/daemon_kit/console_daemon.rb
|
|
85
|
+
lib/daemon_kit/core_ext.rb
|
|
86
|
+
lib/daemon_kit/core_ext/configurable.rb
|
|
87
|
+
lib/daemon_kit/core_ext/string.rb
|
|
88
|
+
lib/daemon_kit/cron.rb
|
|
89
|
+
lib/daemon_kit/cucumber/world.rb
|
|
90
|
+
lib/daemon_kit/deployment/capistrano.rb
|
|
91
|
+
lib/daemon_kit/em.rb
|
|
92
|
+
lib/daemon_kit/error_handlers/base.rb
|
|
93
|
+
lib/daemon_kit/error_handlers/hoptoad.rb
|
|
94
|
+
lib/daemon_kit/error_handlers/mail.rb
|
|
95
|
+
lib/daemon_kit/exceptions.rb
|
|
96
|
+
lib/daemon_kit/initializer.rb
|
|
97
|
+
lib/daemon_kit/jabber.rb
|
|
98
|
+
lib/daemon_kit/nanite.rb
|
|
99
|
+
lib/daemon_kit/nanite/agent.rb
|
|
100
|
+
lib/daemon_kit/pid_file.rb
|
|
101
|
+
lib/daemon_kit/ruote_participants.rb
|
|
102
|
+
lib/daemon_kit/ruote_pseudo_participant.rb
|
|
103
|
+
lib/daemon_kit/ruote_workitem.rb
|
|
104
|
+
lib/daemon_kit/safety.rb
|
|
105
|
+
lib/daemon_kit/tasks.rb
|
|
106
|
+
lib/daemon_kit/tasks/environment.rake
|
|
107
|
+
lib/daemon_kit/tasks/framework.rake
|
|
108
|
+
lib/daemon_kit/tasks/god.rake
|
|
109
|
+
lib/daemon_kit/tasks/log.rake
|
|
110
|
+
lib/daemon_kit/tasks/monit.rake
|
|
111
|
+
script/console
|
|
112
|
+
script/destroy
|
|
113
|
+
script/generate
|
|
114
|
+
script/txt2html
|
|
115
|
+
spec/abstract_logger_spec.rb
|
|
116
|
+
spec/argument_spec.rb
|
|
117
|
+
spec/config_spec.rb
|
|
118
|
+
spec/configurable_spec.rb
|
|
119
|
+
spec/daemon_kit_spec.rb
|
|
120
|
+
spec/error_handlers_spec.rb
|
|
121
|
+
spec/fixtures/env.yml
|
|
122
|
+
spec/fixtures/noenv.yml
|
|
123
|
+
spec/initializer_spec.rb
|
|
124
|
+
spec/spec.opts
|
|
125
|
+
spec/spec_helper.rb
|
|
126
|
+
tasks/rspec.rake
|
|
127
|
+
templates/god/god.erb
|
|
128
|
+
templates/monit/monit.erb
|
|
129
|
+
test/test_amqp_generator.rb
|
|
130
|
+
test/test_cron_generator.rb
|
|
131
|
+
test/test_daemon-kit_generator.rb
|
|
132
|
+
test/test_daemon_kit_config.rb
|
|
133
|
+
test/test_deploy_capistrano_generator.rb
|
|
134
|
+
test/test_generator_helper.rb
|
|
135
|
+
test/test_helper.rb
|
|
136
|
+
test/test_jabber_generator.rb
|
|
137
|
+
test/test_nanite_agent_generator.rb
|
|
138
|
+
test/test_ruote_generator.rb
|
|
139
|
+
vendor/tmail-1.2.3/tmail.rb
|
|
140
|
+
vendor/tmail-1.2.3/tmail/address.rb
|
|
141
|
+
vendor/tmail-1.2.3/tmail/attachments.rb
|
|
142
|
+
vendor/tmail-1.2.3/tmail/base64.rb
|
|
143
|
+
vendor/tmail-1.2.3/tmail/compat.rb
|
|
144
|
+
vendor/tmail-1.2.3/tmail/config.rb
|
|
145
|
+
vendor/tmail-1.2.3/tmail/core_extensions.rb
|
|
146
|
+
vendor/tmail-1.2.3/tmail/encode.rb
|
|
147
|
+
vendor/tmail-1.2.3/tmail/header.rb
|
|
148
|
+
vendor/tmail-1.2.3/tmail/index.rb
|
|
149
|
+
vendor/tmail-1.2.3/tmail/interface.rb
|
|
150
|
+
vendor/tmail-1.2.3/tmail/loader.rb
|
|
151
|
+
vendor/tmail-1.2.3/tmail/mail.rb
|
|
152
|
+
vendor/tmail-1.2.3/tmail/mailbox.rb
|
|
153
|
+
vendor/tmail-1.2.3/tmail/main.rb
|
|
154
|
+
vendor/tmail-1.2.3/tmail/mbox.rb
|
|
155
|
+
vendor/tmail-1.2.3/tmail/net.rb
|
|
156
|
+
vendor/tmail-1.2.3/tmail/obsolete.rb
|
|
157
|
+
vendor/tmail-1.2.3/tmail/parser.rb
|
|
158
|
+
vendor/tmail-1.2.3/tmail/port.rb
|
|
159
|
+
vendor/tmail-1.2.3/tmail/quoting.rb
|
|
160
|
+
vendor/tmail-1.2.3/tmail/require_arch.rb
|
|
161
|
+
vendor/tmail-1.2.3/tmail/scanner.rb
|
|
162
|
+
vendor/tmail-1.2.3/tmail/scanner_r.rb
|
|
163
|
+
vendor/tmail-1.2.3/tmail/stringio.rb
|
|
164
|
+
vendor/tmail-1.2.3/tmail/utils.rb
|
|
165
|
+
vendor/tmail-1.2.3/tmail/version.rb
|
|
166
|
+
vendor/tmail.rb
|