8

を介してサーバーを起動しようとするとrails s、次のエラーメッセージが表示されます。

C:\Users\Frankie\Documents\stocktracker>rails s
=> Booting WEBrick
=> Rails 3.2.8 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
A server is already running. Check C:/Users/Frankie/Documents/stocktracker/tmp/p
ids/server.pid.
Exiting

に記載されている番号server.pidは8436です。

このプロセスを手動で強制終了するにはどうすればよいですか?現在実行中のすべてのwebrickサーバーを簡単に強制終了するにはどうすればよいですか?

4

5 に答える 5

12

taskkill ユーティリティを使用できます。

taskkill /PID 8436
于 2013-01-09T18:58:21.007 に答える
1

OSX で iTerm2 を使用している場合は、Toolbelt => ShowToolbelt を開き、ruby pid 8436 を選択してから、send signal をクリックして強制終了します。時折、タスクキルがうまくいかないことがあります。

また、ps -aux | grep railspidを見つけることもできます。そして、他の回答が推奨するように殺します。

于 2014-05-11T04:15:47.340 に答える
0

Linux/Ubuntuユーザーの場合、killubuntuコマンドがあります。サーバーの実行中webrick、場所内のプロジェクト ディレクトリAPP_DIR/tmp/pids/server.pidにすべてのプロセス ID が保存されます。
ファイルを開くだけで、現在実行中のサーバーのプロセス ID が表示されます。これで、次のコマンドを使用してプロセスを強制終了できます

$ kill [pid] # Example kill 8123
于 2015-02-03T12:47:23.463 に答える
0

次のタスク定義は私にとってはうまくいきます(lib\tasksフォルダーの* .rakeファイルに入れてください):

namespace :server do

  # ---------------------------------------------------------------------------
  desc "Clear the previous server instance clutter."
  task :cleanup => :environment do      
    pidfile = 'tmp/pids/server.pid'
    if File.exists? pidfile
      pid = File.read(pidfile).to_i
      if RbConfig::CONFIG['host_os'] =~ /mswin32/
        sh "taskkill /f /pid #{pid}"
        sh "del tmp\\pids\\server.pid"
      else
        sh "kill #{pid}"
        sh "rm #{pidfile}"
      end
      puts "All cleaned up. Yay!"
    else
      puts "Already clean. Whew!"
    end
  end
  # ---------------------------------------------------------------------------
  desc "Start an instance of the server cleanly."
  task :startup => :cleanup do
    sh "rails server"
  end
  # ---------------------------------------------------------------------------
end

今すぐ実行してください

rake server:startup

Rails サーバーを再度実行する前に、Windoze に残っているプロセスと pid ファイルをクリーンアップします。

于 2014-05-10T22:52:41.843 に答える