web-dev-qa-db-ja.com

ポート8080を使用しているプロセスを強制終了できるように、どうすれば殺すことができますか?

MacOSXでは、Packerを使用してVagrantボックスを作成しているため、継続的に起動および破棄する必要があります。ポートが使用中であるため、「浮浪者」になろうとしていますが、標準エラーを受け取ります。

「Vagrantは、これらのポートで既にリッスンしている他のアプリケーションと衝突するため、このVMで指定されたポートを転送できません。8080に転送されたポートは、ホストマシンですでに使用されています。」

解決策は十分に単純なようです。ポート8080を開いたままにしているプロセスを特定し、そのプロセスを強制終了するだけです。簡単ではありません。


コマンドを実行した場合:

nmap localhost -p 8080

次の出力が表示されます。

PORT     STATE SERVICE
8080/tcp open  http-proxy

次のコマンドを実行すると:

top -o prt

1360で使用中の最高のポート


次のコマンドを実行すると:

 netstat -tulpn | grep :8080

私は受け取ります:

netstat: n: unknown or uninstrumented protocol

次のコマンドを実行すると:

lsof -i :8080

出力がありません


コンピューターを再起動すると、ポートが使用可能になり、「浮浪者」になります。

コンピューターを再起動せずにポート8080を使用しているプロセスを強制終了できるようにするにはどうすればよいですか?

59
Jason Curran

これは役立つかもしれません

lsof -n -i4TCP:8080 

PIDは、出力の2番目のフィールドです。

または試してください:

lsof -i -P
101
Mark Setchell

高速かつ迅速なソリューション:

lsof -n -i4TCP:8080

PIDは2番目のフィールドです。次に、そのプロセスを強制終了します。

kill -9 PID

より高速ではないが永続的なソリューション

  1. /usr/local/bin/に移動します(Finderでcommand + shift + gを使用できます)

  2. stopという名前のファイルを作成します。以下のコードを貼り付けます:

#!/bin/bash
touch temp.text
lsof -n -i4TCP:$1 | awk '{print $2}' > temp.text
pidToStop=`(sed '2q;d' temp.text)`
> temp.text
if [[ -n $pidToStop ]]
then
kill -9 $pidToStop
echo "Congrates!! $1 is stopped."
else
echo "Sorry nothing running on above port"
fi
rm temp.text
  1. このファイルを保存します。今、ターミナルに行き、stop 8888(または任意のポート)を書きます
40
ronak kothari

上記の回答が機能しない場合は、以下の解決策を試してください。ポート8080またはその他のポートに使用できます。

Sudo lsof -i tcp:3000 

3000を任意のポートに置き換えます。以下のコマンドを実行して、そのプロセスを強制終了します。

Sudo kill -9 PID

PIDは、強制終了するプロセスIDです。

以下は、Macターミナルでのコマンドの出力です

Command output

20
Akshay Thorve

このコマンドを実行する必要がありました

Sudo lsof -i :80 # checks port 8080

それから私は得た

COMMAND   PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
acwebseca 312 root   36u  IPv4 0x34ae935da20560c1      0t0  TCP 192.168.1.3:50585->104.25.53.12:http (ESTABLISHED)

pIDを使用しているサービスを表示する

ps -ef 312

それから私はこれを得た

  UID   PID  PPID   C STIME   TTY           TIME CMD
    0   312    58   0  9:32PM ??         0:02.70 /opt/Cisco/anyconnect/bin/acwebsecagent -console

Cisco Webセキュリティエージェントをアンインストールするには

Sudo /opt/Cisco/anyconnect/bin/websecurity_uninstall.sh

クレジット: http://tobyaw.livejournal.com/315396.html

3
mjabadilla

Cisco AnyConnectにすることができます。 /Library/LaunchDaemons/com.Cisco.anyconnect.vpnagentd.plistが存在するかどうかを確認します。次に、launchctlでアンロードし、/ Library/LaunchDaemonsから削除します

2
Andriy Sylka

実行:nmap -p 8080 localhost(システムにまだない場合は、MacPortsまたはHomebrewでnmapをインストールします)

Localhost(127.0.0.1)のNmapスキャンレポート

ホストが稼働しています(0.00034秒の遅延)。

ローカルホストの他のアドレス(スキャンされない)::: 1

ポートステートサービス

8080/tcp open http-proxy

実行:ps -ef | grep http-proxy

UID PID PPID C STIME TTY TIME CMD

640 99335 88310 0 12:26 pm ttys002 0:00.01 grep http-proxy "

実行:ps -ef 640(501をUIDに置き換えます)

/System/Library/PrivateFrameworks/PerformanceAnalysis.framework/Versions/A/XPCServices/com.Apple.PerformanceAnalysis.animationperfd.xpc/Contents/MacOS/com.Apple.PerformanceAnalysis.animationperfd

Mac osxのポート8080が何かで使用されている XCode SDKと共にインストール

1
Yiling

これをスクリプト化するには:

pid=$(lsof -ti tcp:8080)
if [[ $pid ]]; then
  kill -9 $pid
fi

-t引数は、lsofの出力を「terse」にします。これは、PIDのみを返すことを意味します。

1
voutasaurus

アクティビティモニターを使用して、ポートを使用してプロセスを識別して終了することもできます。

0
gcmori