daemons 0.4.2 → 0.4.3
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/README +1 -1
 - data/Releases +9 -0
 - data/lib/daemons.rb +6 -1
 - data/lib/daemons/application.rb +10 -1
 - data/lib/daemons/controller.rb +8 -2
 - metadata +57 -59
 
    
        data/README
    CHANGED
    
    
    
        data/Releases
    CHANGED
    
    | 
         @@ -1,5 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            = Daemons Release History
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            == Release 0.4.3: November 29, 2005
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            * New Option: You can specify the name of the application with :app_name
         
     | 
| 
      
 6 
     | 
    
         
            +
              on calling Daemons.run. This will be used to contruct the name of the pid files
         
     | 
| 
      
 7 
     | 
    
         
            +
              and log files. Defaults to the basename of the script. (thanks to Stephen R. Veit)
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            * Bugfix: Handle the case where no controller options are given when calling Daemons, 
         
     | 
| 
      
 10 
     | 
    
         
            +
              just options after "--". (thanks to Stephen R. Veit)
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
       3 
12 
     | 
    
         | 
| 
       4 
13 
     | 
    
         
             
            == Release 0.4.2: November 15, 2005
         
     | 
| 
       5 
14 
     | 
    
         | 
    
        data/lib/daemons.rb
    CHANGED
    
    | 
         @@ -59,7 +59,7 @@ require 'daemons/controller' 
     | 
|
| 
       59 
59 
     | 
    
         
             
            #
         
     | 
| 
       60 
60 
     | 
    
         
             
            module Daemons
         
     | 
| 
       61 
61 
     | 
    
         | 
| 
       62 
     | 
    
         
            -
              VERSION = "0.4. 
     | 
| 
      
 62 
     | 
    
         
            +
              VERSION = "0.4.3"
         
     | 
| 
       63 
63 
     | 
    
         | 
| 
       64 
64 
     | 
    
         
             
              require 'daemons/daemonize'
         
     | 
| 
       65 
65 
     | 
    
         | 
| 
         @@ -79,6 +79,10 @@ module Daemons 
     | 
|
| 
       79 
79 
     | 
    
         
             
              # +options+:: A hash that may contain one or more of the options listed below
         
     | 
| 
       80 
80 
     | 
    
         
             
              #
         
     | 
| 
       81 
81 
     | 
    
         
             
              # === Options:
         
     | 
| 
      
 82 
     | 
    
         
            +
              # <tt>:app_name</tt>::  The name of the application. This will be
         
     | 
| 
      
 83 
     | 
    
         
            +
              #                       used to contruct the name of the pid files
         
     | 
| 
      
 84 
     | 
    
         
            +
              #                       and log files. Defaults to the basename of
         
     | 
| 
      
 85 
     | 
    
         
            +
              #                       the script.
         
     | 
| 
       82 
86 
     | 
    
         
             
              # <tt>:dir_mode</tt>::  Either <tt>:script</tt> (the directory for writing the pid files to 
         
     | 
| 
       83 
87 
     | 
    
         
             
              #                       given by <tt>:dir</tt> is interpreted relative
         
     | 
| 
       84 
88 
     | 
    
         
             
              #                       to the script location given by +script+) or <tt>:normal</tt> (the directory given by 
         
     | 
| 
         @@ -99,6 +103,7 @@ module Daemons 
     | 
|
| 
       99 
103 
     | 
    
         
             
              # 
         
     | 
| 
       100 
104 
     | 
    
         
             
              # === Example:
         
     | 
| 
       101 
105 
     | 
    
         
             
              #   options = {
         
     | 
| 
      
 106 
     | 
    
         
            +
              #     :app_name   => "my_app",
         
     | 
| 
       102 
107 
     | 
    
         
             
              #     :dir_mode   => :script,
         
     | 
| 
       103 
108 
     | 
    
         
             
              #     :dir        => 'pids',
         
     | 
| 
       104 
109 
     | 
    
         
             
              #     :multiple   => true,
         
     | 
    
        data/lib/daemons/application.rb
    CHANGED
    
    | 
         @@ -248,7 +248,16 @@ module Daemons 
     | 
|
| 
       248 
248 
     | 
    
         
             
                    return
         
     | 
| 
       249 
249 
     | 
    
         
             
                  end
         
     | 
| 
       250 
250 
     | 
    
         | 
| 
       251 
     | 
    
         
            -
                   
     | 
| 
      
 251 
     | 
    
         
            +
                  # Catch errors when trying to kill a process that doesn't
         
     | 
| 
      
 252 
     | 
    
         
            +
                  # exist. This happens when the process quits and hasn't been
         
     | 
| 
      
 253 
     | 
    
         
            +
                  # restarted by the monitor yet. By catching the error, we allow the
         
     | 
| 
      
 254 
     | 
    
         
            +
                  # pid file clean-up to occur.
         
     | 
| 
      
 255 
     | 
    
         
            +
                  begin
         
     | 
| 
      
 256 
     | 
    
         
            +
                    Process.kill('TERM', @pid.pid)
         
     | 
| 
      
 257 
     | 
    
         
            +
                  rescue Errno::ESRCH => e
         
     | 
| 
      
 258 
     | 
    
         
            +
                    puts "#{e} #{@pid.pid}"
         
     | 
| 
      
 259 
     | 
    
         
            +
                    puts "deleting pid-file."
         
     | 
| 
      
 260 
     | 
    
         
            +
                  end
         
     | 
| 
       252 
261 
     | 
    
         | 
| 
       253 
262 
     | 
    
         
             
                  # We try to remove the pid-files by ourselves, in case the application
         
     | 
| 
       254 
263 
     | 
    
         
             
                  # didn't clean it up.
         
     | 
    
        data/lib/daemons/controller.rb
    CHANGED
    
    | 
         @@ -22,10 +22,14 @@ module Daemons 
     | 
|
| 
       22 
22 
     | 
    
         
             
                  @options = options
         
     | 
| 
       23 
23 
     | 
    
         
             
                  @argv = argv
         
     | 
| 
       24 
24 
     | 
    
         | 
| 
      
 25 
     | 
    
         
            +
                  # Allow an app_name to be specified. If not specified use the
         
     | 
| 
      
 26 
     | 
    
         
            +
                  # basename of the script.
         
     | 
| 
      
 27 
     | 
    
         
            +
                  @app_name = options[:app_name]
         
     | 
| 
      
 28 
     | 
    
         
            +
                  
         
     | 
| 
       25 
29 
     | 
    
         
             
                  if options[:script]
         
     | 
| 
       26 
30 
     | 
    
         
             
                    @script = File.expand_path(options[:script])
         
     | 
| 
       27 
31 
     | 
    
         | 
| 
       28 
     | 
    
         
            -
                    @app_name  
     | 
| 
      
 32 
     | 
    
         
            +
                    @app_name ||= File.split(@script)[1]
         
     | 
| 
       29 
33 
     | 
    
         
             
                  end
         
     | 
| 
       30 
34 
     | 
    
         | 
| 
       31 
35 
     | 
    
         
             
                  @command, @controller_part, @app_part = Controller.split_argv(argv)
         
     | 
| 
         @@ -113,7 +117,9 @@ module Daemons 
     | 
|
| 
       113 
117 
     | 
    
         
             
                  end
         
     | 
| 
       114 
118 
     | 
    
         | 
| 
       115 
119 
     | 
    
         
             
                  if i = argv.index('--')
         
     | 
| 
       116 
     | 
    
         
            -
                     
     | 
| 
      
 120 
     | 
    
         
            +
                    # Handle the case where no controller options are given, just
         
     | 
| 
      
 121 
     | 
    
         
            +
                    # options after "--" as well (i == 0)
         
     | 
| 
      
 122 
     | 
    
         
            +
                    controller_part = (i == 0 ? [] : argv[0..i-1])
         
     | 
| 
       117 
123 
     | 
    
         
             
                    app_part = argv[i+1..-1]
         
     | 
| 
       118 
124 
     | 
    
         
             
                  else
         
     | 
| 
       119 
125 
     | 
    
         
             
                    controller_part = argv[0..-1]
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,86 +1,84 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
      
 1 
     | 
    
         
            +
            !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            rubygems_version: 0.8.11
         
     | 
| 
       3 
3 
     | 
    
         
             
            specification_version: 1
         
     | 
| 
       4 
4 
     | 
    
         
             
            name: daemons
         
     | 
| 
       5 
5 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       6 
     | 
    
         
            -
              version: 0.4. 
     | 
| 
       7 
     | 
    
         
            -
            date: 2005-11- 
     | 
| 
      
 6 
     | 
    
         
            +
              version: 0.4.3
         
     | 
| 
      
 7 
     | 
    
         
            +
            date: 2005-11-29 00:00:00 +01:00
         
     | 
| 
       8 
8 
     | 
    
         
             
            summary: A toolkit to create and control daemons in different ways
         
     | 
| 
       9 
9 
     | 
    
         
             
            require_paths: 
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
      
 10 
     | 
    
         
            +
            - lib
         
     | 
| 
       11 
11 
     | 
    
         
             
            email: th.uehlinger@gmx.ch
         
     | 
| 
       12 
12 
     | 
    
         
             
            homepage: http://daemons.rubyforge.org
         
     | 
| 
       13 
13 
     | 
    
         
             
            rubyforge_project: daemons
         
     | 
| 
       14 
     | 
    
         
            -
            description:  
     | 
| 
       15 
     | 
    
         
            -
              self-written server)  to be run as a daemon and to be controlled by simple
         
     | 
| 
       16 
     | 
    
         
            -
              start/stop/restart commands.  You can also call blocks as daemons and control
         
     | 
| 
       17 
     | 
    
         
            -
              them from the parent or just daemonize the current process.  Besides this basic
         
     | 
| 
       18 
     | 
    
         
            -
              functionality, daemons offers many advanced features like exception  backtracing
         
     | 
| 
       19 
     | 
    
         
            -
              and logging (in case your ruby script crashes) and monitoring and automatic
         
     | 
| 
       20 
     | 
    
         
            -
              restarting of your processes if they crash."
         
     | 
| 
      
 14 
     | 
    
         
            +
            description: Daemons provides an easy way to wrap existing ruby scripts (for example a self-written server)  to be run as a daemon and to be controlled by simple start/stop/restart commands.  You can also call blocks as daemons and control them from the parent or just daemonize the current process.  Besides this basic functionality, daemons offers many advanced features like exception  backtracing and logging (in case your ruby script crashes) and monitoring and automatic restarting of your processes if they crash.
         
     | 
| 
       21 
15 
     | 
    
         
             
            autorequire: daemons
         
     | 
| 
       22 
16 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       23 
17 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       24 
18 
     | 
    
         
             
            has_rdoc: true
         
     | 
| 
       25 
19 
     | 
    
         
             
            required_ruby_version: !ruby/object:Gem::Version::Requirement 
         
     | 
| 
       26 
20 
     | 
    
         
             
              requirements: 
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
                   
     | 
| 
       30 
     | 
    
         
            -
                    version: 0.0.0
         
     | 
| 
      
 21 
     | 
    
         
            +
              - - ">"
         
     | 
| 
      
 22 
     | 
    
         
            +
                - !ruby/object:Gem::Version 
         
     | 
| 
      
 23 
     | 
    
         
            +
                  version: 0.0.0
         
     | 
| 
       31 
24 
     | 
    
         
             
              version: 
         
     | 
| 
       32 
25 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       33 
26 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       34 
27 
     | 
    
         
             
            cert_chain: 
         
     | 
| 
       35 
28 
     | 
    
         
             
            authors: 
         
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
      
 29 
     | 
    
         
            +
            - Thomas Uehlinger
         
     | 
| 
       37 
30 
     | 
    
         
             
            files: 
         
     | 
| 
       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 
     | 
    
         
            -
             
     | 
| 
      
 31 
     | 
    
         
            +
            - Rakefile
         
     | 
| 
      
 32 
     | 
    
         
            +
            - Releases
         
     | 
| 
      
 33 
     | 
    
         
            +
            - TODO
         
     | 
| 
      
 34 
     | 
    
         
            +
            - README
         
     | 
| 
      
 35 
     | 
    
         
            +
            - setup.rb
         
     | 
| 
      
 36 
     | 
    
         
            +
            - lib/daemons.rb
         
     | 
| 
      
 37 
     | 
    
         
            +
            - lib/daemons/cmdline.rb
         
     | 
| 
      
 38 
     | 
    
         
            +
            - lib/daemons/exceptions.rb
         
     | 
| 
      
 39 
     | 
    
         
            +
            - lib/daemons/daemonize.rb
         
     | 
| 
      
 40 
     | 
    
         
            +
            - lib/daemons/pidfile.rb
         
     | 
| 
      
 41 
     | 
    
         
            +
            - lib/daemons/monitor.rb
         
     | 
| 
      
 42 
     | 
    
         
            +
            - lib/daemons/application_group.rb
         
     | 
| 
      
 43 
     | 
    
         
            +
            - lib/daemons/controller.rb
         
     | 
| 
      
 44 
     | 
    
         
            +
            - lib/daemons/pid.rb
         
     | 
| 
      
 45 
     | 
    
         
            +
            - lib/daemons/pidmem.rb
         
     | 
| 
      
 46 
     | 
    
         
            +
            - lib/daemons/application.rb
         
     | 
| 
      
 47 
     | 
    
         
            +
            - test/tmp
         
     | 
| 
      
 48 
     | 
    
         
            +
            - test/testapp.rb
         
     | 
| 
      
 49 
     | 
    
         
            +
            - test/test1.rb
         
     | 
| 
      
 50 
     | 
    
         
            +
            - test/call_as_daemon.rb
         
     | 
| 
      
 51 
     | 
    
         
            +
            - test/tc_main.rb
         
     | 
| 
      
 52 
     | 
    
         
            +
            - examples/run
         
     | 
| 
      
 53 
     | 
    
         
            +
            - examples/call
         
     | 
| 
      
 54 
     | 
    
         
            +
            - examples/daemonize
         
     | 
| 
      
 55 
     | 
    
         
            +
            - examples/run/ctrl_exec.rb
         
     | 
| 
      
 56 
     | 
    
         
            +
            - examples/run/ctrl_exit.rb
         
     | 
| 
      
 57 
     | 
    
         
            +
            - examples/run/ctrl_multiple.rb
         
     | 
| 
      
 58 
     | 
    
         
            +
            - examples/run/myserver_crashing.rb.output
         
     | 
| 
      
 59 
     | 
    
         
            +
            - examples/run/ctrl_normal.rb
         
     | 
| 
      
 60 
     | 
    
         
            +
            - examples/run/ctrl_monitor.rb
         
     | 
| 
      
 61 
     | 
    
         
            +
            - examples/run/myserver.rb
         
     | 
| 
      
 62 
     | 
    
         
            +
            - examples/run/myserver_crashing.rb
         
     | 
| 
      
 63 
     | 
    
         
            +
            - examples/run/ctrl_ontop.rb
         
     | 
| 
      
 64 
     | 
    
         
            +
            - examples/run/myserver_exiting.rb
         
     | 
| 
      
 65 
     | 
    
         
            +
            - examples/run/ctrl_crash.rb
         
     | 
| 
      
 66 
     | 
    
         
            +
            - examples/call/call_monitor.rb
         
     | 
| 
      
 67 
     | 
    
         
            +
            - examples/call/call.rb
         
     | 
| 
      
 68 
     | 
    
         
            +
            - examples/daemonize/daemonize.rb
         
     | 
| 
       76 
69 
     | 
    
         
             
            test_files: 
         
     | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
      
 70 
     | 
    
         
            +
            - test/tc_main.rb
         
     | 
| 
       78 
71 
     | 
    
         
             
            rdoc_options: []
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
       79 
73 
     | 
    
         
             
            extra_rdoc_files: 
         
     | 
| 
       80 
     | 
    
         
            -
             
     | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
      
 74 
     | 
    
         
            +
            - README
         
     | 
| 
      
 75 
     | 
    
         
            +
            - Releases
         
     | 
| 
      
 76 
     | 
    
         
            +
            - TODO
         
     | 
| 
       83 
77 
     | 
    
         
             
            executables: []
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
       84 
79 
     | 
    
         
             
            extensions: []
         
     | 
| 
      
 80 
     | 
    
         
            +
             
     | 
| 
       85 
81 
     | 
    
         
             
            requirements: []
         
     | 
| 
       86 
     | 
    
         
            -
             
     | 
| 
      
 82 
     | 
    
         
            +
             
     | 
| 
      
 83 
     | 
    
         
            +
            dependencies: []
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     |