159

rails sコマンドを使用してRailsサーバーを起動すると、次のように表示されます。A server is already running. Check C:/Sites/folder/Pids/Server.pids

ファイルを開くと4桁の数字しか出力されないので、どうすればこの問題を解決できますか?

ご参考までに

  1. 今回は、Railscmdの他のインスタンスは実行されていません。
  2. タスクマネージャをチェックしましたがcmd.exe、他のプロセスが実行されていないことを示しているだけです。(Windowsを使用)。
4

17 に答える 17

227

TL;DR このコマンドを実行して強制終了します

sudo kill -9 $(lsof -i :3000 -t)

根本的な原因: PID はファイル内でロックされており、Web サーバーは、そのファイルが存在する場合、それは既に実行されていることを意味すると考えているためです。通常、Web サーバーが閉じられるとそのファイルは削除されますが、場合によっては適切に削除されないため、手動でファイルを削除する必要があります

Rails sを実行すると

=> WEBrick の起動

=> Rails 4.0.4 アプリケーションの開発開始http://0.0.0.0:3000

=>rails server -h起動オプションを増やすために実行

=> Ctrl-C でサーバーをシャットダウン

サーバーはすでに稼働しています。/your_project_path/tmp/pids/server.pid を確認してください。 終了

したがって、ここに表示されているパスを配置してください /your_project_path/tmp/pids/server.pid

このserver.pidファイルを削除します。

rm /your_project_path/tmp/pids/server.pid

または、サーバーが切り離されている場合は、以下のガイドラインに従ってください。

コマンド「rails -d」を使用してrailsサーバーをデタッチした場合、

コマンドを使用して、レールから切り離されたサーバーを削除します

ps -aef | grep rails

または、このコマンドで

sudo lsof -wni tcp:3000

それから

kill -9 pID

または、このコマンドを使用します

そのプログラムが実行されているポート名でプロセスを見つけて強制終了します。3000 の場合、プログラムが実行されているポートを置き換えます。

sudo kill -9 $(lsof -i :3000 -t)

古い解決策:

rails s -p 4000 -P tmp/pids/server2.pid

また、より多くのオプションについては、この投稿を見つけることができます Rails Update to 3.2.11 は複数のサーバーの実行を中断します

于 2013-04-18T06:26:14.293 に答える
217

ファイルを削除します: C:/Sites/folder/Pids/Server.pids

説明 少なくとも UNIX の世界では、通常、server.pid のようなファイルでプロセス ID (pid) を追跡します。これはここで同じことをしていると思います。そのファイルはおそらくクラッシュから残ったものです。

于 2013-02-25T17:34:00.127 に答える
85
lsof -wni tcp:3000

次に、ルビープロセスが表示され、実行できます

kill -9 processid

今すぐプロセスを実行しても問題ありません

rails s thin

複数のプロセスを実行することは良い考えとは思えず、私が読んだことから、多くの人が同意しています。残念ながら、Rails で多くのメモリ リークが発生していることに気付いたので、2 つのプロセスが実行されているとは想像できませんでした。データがメモリに保存されているため、残業が 1 回あると、ページの更新がますます遅くなることはわかっています。

于 2014-03-13T18:58:22.760 に答える
28
kill -9 $(lsof -i tcp:3000 -t)
于 2015-02-24T12:26:24.230 に答える
13

プロセスを強制終了することで、プロセスを取り除くことができます。

kill -9 $(lsof -i tcp:3000 -t)
于 2018-03-27T13:38:00.663 に答える
12
$ lsof -wni tcp:3000

# Kill the running process
$ kill -9 5946

$ rm tmp/server.pids

職長 開始等 サービス開始

于 2016-06-08T03:05:23.147 に答える
6

gem install shutup

次に、Rails プロジェクトの現在のフォルダーに移動して実行します

shutup# これにより、現在実行中の Rails プロセスが強制終了されます

必要なときにいつでも「shutup」コマンドを使用できます

免責事項: 私はこの宝石の作成者です

注: rvm を使用している場合は、gem をグローバルにインストールしてください

rvm @global do gem install shutup
于 2016-11-16T11:51:50.263 に答える
3

おそらく次の方法でサーバーを中断しました: ^Z

出力される 4 つの数字がvim C:/Sites/folder/Pids/Server.pidsプロセス ID です。

kill -9 processidプロセスIDをvim(または他のエディター)が出力した4つの数字に置き換える必要があります。

于 2015-07-20T03:24:07.610 に答える
2

Windows を使用している場合は、 「rails restart」 を 1 ステップだけ実行してから、 「rails s」と入力 するだけで済みます。

于 2017-11-03T08:18:37.517 に答える
2

走る:

Ubuntu/Linux で

 sudo rm /var/www/html/rails/WBPOCTEST/tmp/pids/server.pid

または

 pkill -9 ruby

また

lsof -wni tcp:3000

kill -9 pid
于 2019-01-16T08:31:39.257 に答える