2013-01-09 17 views
7

私はrails sを介してサーバを起動しようとすると、私は次のエラーメッセージが表示されます:rails webrickサーバーを削除するにはどうすればよいですか?

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サーバーを簡単に削除するにはどうしたらいいですか?

+0

メッセージは、別のプロセスがポート3000にバインドされていることを示しているに過ぎません。必ずしも別のWEBrickプロセスである必要はありません。私はこのユーティリティは、あなたがTCPポートプロセスがリッスンしていることを見つけるのに役立つと思います:http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx(Windowsで作業していたのでしばらくありました) – Brian

+0

kill -INT $(猫TMP/PIDを/ server.pid) [ここで見る] [1] [1]:http://stackoverflow.com/questions/15088163/cant-stop- rails-server#Answer-15088254 – montells

答えて

11

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

taskkill /PID 8436 
+0

私はすでにそれを試みましたが、明らかにプロセスは存在しませんでした。 'ERROR:プロセス" 8436 "not found。" – fbonetti

+6

プロセスがすでに停止している可能性があり、そのpidファイルをクリーンアップできませんでした。私は手動でpidファイルを削除して再試行します。 –

+2

うん、PIDファイルを削除するのはやりました。ありがとう! – fbonetti

0

次のタスク定義は、私の作品(あなたのlibの\タスク・フォルダーに* .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 

を実行することがきれいにWindozeの残りのプロセスとpidファイルを再構築してから、再度railsサーバーを実行してください。

1

OSXでiTerm2を使用している場合は、Toolbelt => ShowToolbeltを開き、ruby pid 8436を選択して信号を送信してそれを強制終了します。時にはタスクを殺すことができません。

さらに、ps -aux | grep railsを入力してpidを見つけることもできます。他の回答が推奨するように殺す。

0

Linux/Ubuntuの場合、ubuntuにはkillコマンドがあります。 webrickサーバーを実行しているときに、場所APP_DIR/tmp/pids/server.pid内のプロジェクトディレクトリにすべてのプロセスIDが保存されます。
ファイルを開くだけで、現在実行中のサーバーのプロセスIDが見つかります。今、あなたは

$ kill [pid] # Example kill 8123 
+0

さらに詳しい情報はhttps://cbabhusal.wordpress.com/2015/02/03/forcefully-kill-webrick-instance-in-ubuntu-andにあります。 -windows/ – illusionist

-2

は、次の手順に従いプロセスを強制終了するには、次のコマンドを使用することができます。

によって1.Find 'レールs' のプロセスID:のps -aux | grepのレール

2.Useように-9オプションのコマンドを殺す:あなたは失望することはできません-p [PID]を殺す

を!

+0

それはkill -9 [PID]ですか? -pが機能しませんでした... – mack

+0

この回答はWindowsでは機能しません。 –

関連する問題