Di MacOSX, saya menggunakan Packer untuk membuat kotak Vagrant jadi saya harus terus mengangkat dan merobohkannya. Saya mencoba untuk 'gelandangan', dan menerima kesalahan standar karena port sedang digunakan:
"Vagrant tidak dapat meneruskan port yang ditentukan pada VM ini, karena akan bertabrakan dengan beberapa aplikasi lain yang sudah mendengarkan pada port ini. Port yang diteruskan ke 8080 sudah digunakan pada mesin host."
Solusinya tampaknya cukup sederhana: Saya hanya perlu mengidentifikasi proses yang menahan port 8080 terbuka dan menghentikan proses itu, bukan ?. Ini tidak semudah itu.
Jika saya menjalankan perintah:
nmap localhost -p 8080
Saya menerima keluaran berikut:
PORT STATE SERVICE
8080/tcp open http-proxy
Jika saya menjalankan perintah berikut:
top -o prt
Port tertinggi digunakan pada tahun 1360
Jika saya menjalankan perintah berikut:
netstat -tulpn | grep :8080
Saya menerima:
netstat: n: unknown or uninstrumented protocol
Jika saya menjalankan perintah berikut:
lsof -i :8080
Saya tidak menerima keluaran
Jika saya me-restart komputer saya, port tersebut sekarang tersedia dan saya sekarang bisa 'gelandangan'.
Bagaimana saya dapat mematikan proses apa pun yang menggunakan port 8080 sehingga saya dapat menggeledah tanpa me-restart komputer saya?
sumber
sudo lsof -n -i4TCP:8080
untuk mengambil proses yang dimiliki oleh root.Solusi cepat dan cepat:
lsof -n -i4TCP:8080
PID
adalah bidang kedua. Kemudian, akhiri proses itu:kill -9 PID
Solusi kurang cepat tapi permanen
Pergi ke
/usr/local/bin/
(Dapat menggunakan perintah + shift + g di finder)Buat file bernama
stop
. Tempel kode di bawah ini di dalamnya:#!/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
chmod 755 stop
stop 8888
(atau port manapun)sumber
chmod 755 stop
.Jika jawaban yang diterima di atas tidak berfungsi, coba solusi di bawah ini. Anda dapat menggunakannya untuk port 8080 atau untuk port lain.
Ganti 3000 dengan port mana pun yang Anda inginkan. Jalankan perintah di bawah ini untuk menghentikan proses itu.
PID adalah ID proses yang ingin Anda matikan.
Di bawah ini adalah output dari perintah di Terminal mac.
sumber
Untuk membuat skrip ini:
The
-t
Argumen membuat output dari lsof "singkat" yang berarti bahwa ia hanya mengembalikan PID.sumber
Saya perlu menjalankan perintah ini
Lalu saya dapat
menunjukkan layanan mana yang menggunakan PID
Lalu aku dapat ini
Untuk menghapus instalan agen keamanan web cisco, jalankan
kredit untuk: http://tobyaw.livejournal.com/315396.html
sumber
Ini bisa berupa Cisco AnyConnect. Periksa apakah /Library/LaunchDaemons/com.cisco.anyconnect.vpnagentd.plist ada. Kemudian bongkar dengan launchctl dan hapus dari / Library / LaunchDaemons
sumber
Dengan menjalankan perintah di atas Anda dapat melihat semua pekerjaan yang sedang berjalan.
Masukkan PID (nomor identifikasi proses), jadi ini akan menghentikan / mematikan instance.
sumber
Anda juga dapat menggunakan Monitor Aktivitas untuk mengidentifikasi dan keluar dari proses menggunakan port.
sumber
Jalankan:
nmap -p 8080 localhost
(Instal nmap dengan MacPorts atau Homebrew jika Anda belum memilikinya di sistem Anda)Lari:
ps -ef | grep http-proxy
Jalankan:
ps -ef 640
(ganti 501 dengan UID Anda)Port 8080 di mac osx digunakan oleh sesuatu yang diinstal dengan XCode SDK
sumber
Gunakan perintah berikut:
lsof -n -i4TCP:8080 | awk '{print$2}' | xargs kill -9
ID proses port 8080 akan diambil dan dimatikan dengan paksa menggunakan
kill -9
.sumber
coba netstat
jika netstat Anda tidak mendukung -p, gunakan lsof
Untuk penggunaan Centos 7
sumber