回答:
ポート3000にあるもの(webrickが通常使用するもの)を強制終了する場合は、ターミナルに次のように入力して、プロセスのPIDを確認します。
$ lsof -wni tcp:3000
次に、PID列の番号を使用してプロセスを強制終了します。
$ kill -9 PID
PID
の最初の行を入力するとコンソールに表示される実際の番号(など12345
)に置き換えます。
lsof -wni tcp:3000
すると、常にそのプロトコルとポートの組み合わせをリッスンしているすべてのプロセスが表示されます。(3000はローカルサーバーポートに置き換えられます。たとえば、Railsでは、これはデフォルトで3000です)。
kill -9 $(lsof -i tcp:3000 -t)
-t
specifies that lsof should produce terse output with process identifiers only and no header - e.g., so that the output may be piped to kill(1).
kill
kill -9
rote /習慣的に使用することについて受け入れられた答えについての私のコメントを参照してください。
tcpポート3000を使用してプログラムのプロセスIDを取得する必要があります。プロセスIDを取得するには
lsof -i tcp:3000 -t
そして、そのプロセスIDを使用して、ubuntu killコマンドを使用してプロセスを強制終了します。
kill -9 pid
または、下記の結合コマンドを実行します。最初にpidをフェッチしてから、そのプロセスを強制終了します。
kill -9 $(lsof -i tcp:3000 -t)
kill -9
rote /習慣的に使用することについて受け入れられた答えについての私のコメントを参照してください。
Mac以外でこの問題に遭遇した場合、サーバーがポート3000で実行されていることがわかっている場合、次のコマンドを実行すると、これを一度に実行できます。
fuser -k 3000/tcp
しかし、Tobyが述べたように、Mac OSでのフューザーの実装はかなり原始的であり、このコマンドはMacでは機能しません。
-v
フラグを追加すると、どのプロセスが強制終了されたかについての少量の情報も表示されます。ですからfuser -kv 3000/tcp
。残念ながら、MacOSのフューザーにはこの機能がありません。kill $(lsof -ti tcp:3000)
ただし、かなり近いものです。
Railsサーバーが適切に閉じられない可能性があります。レールが使用するプロセスを見つけることができます
ps aux | grepレール
出力は次のようになります
user 12609 9.8 0.5 66456 45480 pts/0 Sl+ 21:06 0:02 /home/user/.rvm/rubies/ruby-2.2.0-preview1/bin/ruby bin/rails s
ここで、process_id 12609はRailsサーバーによって使用されます。
コマンドで簡単に殺せます
キル-9 12609
kill -9
rote /習慣的に使用することについて受け入れられた答えについての私のコメントを参照してください。
ps aux | grep puma
上記のすべての答えは本当に良いですが、ターミナルでできるだけ少なく入力する方法が必要だったので、そのための宝石を作成しました。Gemをインストールできるのは1回だけで、Railsプロセスを(現在のフォルダーにいる間)強制終了するたびに 'shutup'コマンドを実行できます。
gem install shutup
次に、railsプロジェクトの現在のフォルダーに移動して実行します
shutup
#これにより、現在実行中のRailsプロセスが強制終了されます
いつでもコマンド「shutup」を使用できます
DICLAIMER:私はこの宝石の作成者です
注:rvmを使用している場合は、gemをグローバルにインストールします
rvm @global do gem install shutup
lsof
アプローチは、より信頼性のあります。
入力:
man lsof
次に、-w、-n、および-iを探します。
-i:インターネット関連-n:高速化-w:警告をトグル
マンページにWAYの詳細があります
Windowsマシンを使用している場合は、次の手順に従ってください。
c:/project/
cd tmp
c:/project/tmp
cd pids
c:/project/tmp/pids
dir
そこで、server.pidというファイルがあります。
消して。
c:/project/tmp/pid> del *.pid
それでおしまい。
編集: これを参照してください