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を使用しているプロセスを強制終了できるようにするにはどうすればよいですか?
これは役立つかもしれません
lsof -n -i4TCP:8080
PIDは、出力の2番目のフィールドです。
または試してください:
lsof -i -P
lsof -n -i4TCP:8080
PID
は2番目のフィールドです。次に、そのプロセスを強制終了します。
kill -9 PID
/usr/local/bin/
に移動します(Finderでcommand + shift + gを使用できます)
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
stop 8888
(または任意のポート)を書きますこのコマンドを実行する必要がありました
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
Cisco AnyConnectにすることができます。 /Library/LaunchDaemons/com.Cisco.anyconnect.vpnagentd.plistが存在するかどうかを確認します。次に、launchctlでアンロードし、/ Library/LaunchDaemonsから削除します
実行: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と共にインストール
これをスクリプト化するには:
pid=$(lsof -ti tcp:8080)
if [[ $pid ]]; then
kill -9 $pid
fi
-t
引数は、lsofの出力を「terse」にします。これは、PIDのみを返すことを意味します。
アクティビティモニターを使用して、ポートを使用してプロセスを識別して終了することもできます。