<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -70,23 +70,19 @@ module Merb
       # processes.
       def kill(port, sig=&quot;INT&quot;)
         Merb::BootLoader::BuildFramework.run
-        begin
-          if sig == 9 &amp;&amp; port == &quot;main&quot;
-            Dir[&quot;#{Merb.log_path}&quot; / &quot;*.pid&quot;].each do |file|
-              kill_pid(9, File.read(file).chomp.to_i, file)
-            end
-          else
-            pid = File.read(pid_file(port)).chomp.to_i
-            kill_pid(sig, pid, pid_file(port))
+        if sig == 9 &amp;&amp; port == &quot;main&quot;
+          kill_pid(&quot;INT&quot;, pid_file(&quot;main&quot;))
+          Dir[&quot;#{Merb.log_path}&quot; / &quot;*.pid&quot;].each do |file|
+            kill_pid(9, file)
           end
-        rescue Errno::EACCES =&gt; e
-          Merb.fatal! e.message, e
-        rescue Errno::ENOENT =&gt; e
-          Merb.fatal! &quot;Could not find a PID file at #{pid_file(port)}&quot;, e           
+        else
+          kill_pid(sig, pid_file(port))
         end
+
         if sig.is_a?(Integer)
           sig = Signal.list.invert[sig]
         end
+
         if sig == &quot;KILL&quot; &amp;&amp; port == &quot;main&quot;
           Merb.fatal! &quot;Killed all PIDs with signal KILL&quot;
         else
@@ -94,8 +90,10 @@ module Merb
         end
       end
       
-      def kill_pid(sig, pid, file)
+      def kill_pid(sig, file)
         begin
+          pid = File.read(file).chomp.to_i
+          Merb.logger.warn! &quot;Killing pid #{pid}&quot;
           Process.kill(sig, pid)
           FileUtils.rm(file) if File.exist?(file)
         rescue Errno::EINVAL
@@ -107,6 +105,10 @@ module Merb
           FileUtils.rm file
           Merb.fatal! &quot;Failed to kill PID #{pid}: Process is &quot; \
             &quot;deceased or zombie.&quot;
+        rescue Errno::EACCES =&gt; e
+          Merb.fatal! e.message, e
+        rescue Errno::ENOENT =&gt; e
+          Merb.fatal! &quot;Could not find a PID file at #{file}&quot;, e
         rescue Exception =&gt; e
           if !e.is_a?(SystemExit)
             Merb.fatal! &quot;Failed to kill PID #{pid}&quot;, e</diff>
      <filename>lib/merb-core/server.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>0d0459cde49d7602b06a8a09a4379dbf3aac17d3</id>
    </parent>
  </parents>
  <author>
    <name>Yehuda Katz</name>
    <email>wycats@gmail.com</email>
  </author>
  <url>http://github.com/wycats/merb-core/commit/59a2e88f92eaeab86817b933d63d272e02f17213</url>
  <id>59a2e88f92eaeab86817b933d63d272e02f17213</id>
  <committed-date>2008-09-30T08:10:14-07:00</committed-date>
  <authored-date>2008-09-30T08:10:14-07:00</authored-date>
  <message>merb -k works right</message>
  <tree>3eae16223f65b9db1661be9cd59e1045e11aad31</tree>
  <committer>
    <name>Yehuda Katz</name>
    <email>wycats@gmail.com</email>
  </committer>
</commit>
