start_proc (Daemons::Application)

    # File lib/daemons/application.rb, line 179
        def start_proc
          return unless p = options[:proc]

          myproc = proc do
            # We need this to remove the pid-file if the applications exits by itself.
            # Note that <tt>at_text</tt> will only be run if the applications exits by calling
            # <tt>exit</tt>, and not if it calls <tt>exit!</tt> (so please don't call <tt>exit!</tt>
            # in your application!
            #
            at_exit {
              begin; @pid.cleanup; rescue ::Exception; end

              # If the option <tt>:backtrace</tt> is used and the application did exit by itself
              # create a exception log.
              if options[:backtrace] and not options[:ontop] and not $daemons_sigterm
                begin; exception_log(); rescue ::Exception; end
              end

            }

            # This part is needed to remove the pid-file if the application is killed by
            # daemons or manually by the user.
            # Note that the applications is not supposed to overwrite the signal handler for
            # 'TERM'.
            #
            trap(SIGNAL) {
              begin; @pid.cleanup; rescue ::Exception; end
              $daemons_sigterm = true

              if options[:hard_exit]
                exit!
              else
                exit
              end
            }

            p.call()
          end

          unless options[:ontop]
            @pid.pid = Daemonize.call_as_daemon(myproc, output_logfile, @group.app_name)
          else
            Daemonize.simulate(output_logfile)

            @pid.pid = Process.pid

            myproc.call

    # why did we use this??
    #         Thread.new(&options[:proc])

    # why did we use the code below??
            # unless pid = Process.fork
            #   @pid.pid = pid
            #   Daemonize.simulate(logfile)
            #   options[:proc].call
            #   exit
            # else
            #   Process.detach(@pid.pid)
            # end
          end
        end