カーゴを使用してポート8080でTomcatを実行しようとしていますが、次のメッセージが表示されます。
org.codehaus.cargo.container.ContainerException:ポート番号8080(プロパティcargo.servlet.portで定義)が使用されています。システムで解放するか、コンテナ構成の別のポートに設定してください。
8080のローカルホストにtelnet
すると、接続されます。
しかし、私がSudo lsof -n | grep 8080
、何も見えません。 netstat
でも運が悪い。
何が問題なのですか?
多くのネットワークコマンドの出力は、デフォルトでより人間が読めるように作られています。 IPアドレスとポート番号ではなく、ホスト名とサービス名を使用します。
APP.DOMAIN.COM:http (LISTEN)
vs 10.191.12.109:80 (LISTEN)
このようなコマンドの出力でポート番号をgrep
するには、ポート番号を使用していることを確認する必要があります。 lsof
の場合、それは-P
コマンドオプション。
Sudo lsof -n -P | grep :8080
netsat
の場合は-n
ホスト名とサービス名の両方をオフにします。
Sudo netstat -lpn | grep :8080
@Brianが提案したlsof
コマンドは機能するはずです(ただし、lsof
にSudo lsof -i:8080
を使用して独自のフィルタリングを実行させることをお勧めします)。これらのコマンドのいずれにも何も表示されない場合は、何か他のことが起こっていると思われます。たとえば、Tomcatがポートを2回開こうとして、それ自体と競合している可能性はありますか?
また、コマンドSudo lsof -i:8080とnetstatの両方がポート8080に固有のものを表示しないため、ポート8080で実行されているものを見つけるのに苦労しました。コマンドSudo lsof -i:80を実行して、それを使用しているものを見つけました。 MacにインストールされているESetAntivirusがブロックしていることが判明しました。 ESetをアンインストールしましたが、すべて問題ありません。