Server failed to start for port 8080: Address already in use
" "を解決しようとすると、このエラーが発生します
Error executing script 8888: For input string: ""
誰でも助けることができますか?何が悪いのかわからない。ありがとう。
Server failed to start for port 8080: Address already in use
" "を解決しようとすると、このエラーが発生します
Error executing script 8888: For input string: ""
誰でも助けることができますか?何が悪いのかわからない。ありがとう。
ポート番号 8080 がすでに使用されており、同じポートを再利用したい場合は、そのプロセスを強制終了する必要があります。
まず、ポート 8080 を使用しているプロセスの pid を確認します。これを実行するには、次のコマンドを実行します。
lsof -w -n -i tcp:8080
上記の例では、ポート 9090 を使用しているプロセスの pid は 3812 です。
PID をメモします。PID は、マシンによって異なる場合があります。これは、次のコマンドを実行するために必要です。
そのため、run-app を介してテストする必要があります。
grails run-app
更新: の出力lsof -w -n -i tcp:8080| awk '{print $2}'|awk 'END{print}'
は PID であるため、PID によってポート プロセスを自動的に強制終了できます。
kill -9 `lsof -w -n -i tcp:8080| awk '{print $2}'|awk 'END{print}'`
Grails/Groovy Tool Suite (Eclipse ベースの IDE)を使用している場合は、[ Run as] > [Run Configurations... ] を選択します 。次に、[Grails] タブで次のように入力します。
-Dserver.port=8050 run-app
そのため、Grails はデフォルトのポート (8080) ではなくポート 8050 で実行されます。
メッセージ
ポート 8080 でサーバーを起動できませんでした: アドレスは既に使用されています
マシン上の他のプロセスがすでにポート 8080 にバインドされていることを示しています。これは、Tomcat を起動したか、使用している IDE によって適切にシャットダウンされなかったため、実行されている Tomcat のインスタンスであると推測されます。
いずれにせよ、この質問は、ポートを使用しているプロセスを終了するのに役立ちます。
スクリプト 8888 に関する 2 つ目のエラーについては、わかりません。Grails は私の環境でこのスクリプトを起動しようとしないので、インストールしたプラグインに関連していると思います。
問題は、ポート番号 8080 が既に使用されていることです。したがって、そのプロセスを停止して新しいプロセスに道を譲る必要があるかgrails -Dserver.port=8090 run-app
、アプリをいつ実行するかを指定できます。
ただし、スクリプト エラーが発生しているため、BuildConfig.groovy でポートを指定していない可能性があります。
解決策は次のとおりgrails.server.port.http=8888
です。BuildConfig.groovy
ここのコメントを参照してください: http://www.icodeya.com/2012/06/grails-resolving-server-failed-to-start.html
使用中のポートを強制終了する方法
コマンド プロンプトを開き、「C:>netstat -a -n -o |」と入力します。「8080」を検索 ポートの PID を検索 例 TCP 0.0.0.0:8888 0.0.0.0:0 LISTENING 9068
次
C:>taskkill /PID 9068 /F SUCCESS: PID 9068 のプロセスは終了しました。
ポート番号 8080 が既に使用されており、同じポートを再利用したい場合は、そのプロセスを強制終了する必要があります。使用fuser 8080/tcp
すると、そのポートにバインドされているプロセスの PID が出力されます。
そして、これfuser -k 8080/tcp
はそのプロセスを殺します。
Linux のみの Woks。より普遍的なのはlsof -i4
(IPv6 の場合は 6) の使用です。
例: ポートが 8080 の場合、端末で実行:
fuser -k -n tcp 8080
それだ!
STS または Eclipse (またはおそらく Eclipse 上に構築された環境) を使用している場合、1 つのオプションは Debug パースペクティブ ( Window -> Open perspective -> Debug ) に移動することです。そこから、実行中のサーバーを右クリックし、 [ Terminate and relaunch ] をクリックします。これにより、現在のサーバーが強制終了され、同じポートで再起動されるため、メッセージが表示されなくなりServer failed to start for port 8080: Address already in use
ます。
については、Error executing script 8888: For input string: ""
これまで見たことがありませんが、@ShootingStar に答えがあるようです。
他の投稿された回答よりも簡単です。
コンソール ウィンドウには、X と XX のアイコンがあります。その上にカーソルを合わせると。「Remove Launch」と「Remove All Terminated Launches」を示すバルーンが表示されます。
両方をクリックします。Eclipse は既存のサーバーをすべてクリアするので、デフォルト ポートでサーバーを再起動できます。
8080 ポートが現在使用されているかどうかを確認できます。
sudo lsof -i :8080
COMMAND
次に、 、PID
、USER
およびそのようなものを含むポートの状態を確認できます。
次に、 で終了できますPID
。
kill -9 <PID>