Jak mogę usunąć bieżący proces / aplikację, która jest już przypisana do portu?
Na przykład: localhost:8080
Krok 1:
Otwórz program cmd.exe (uwaga: może być konieczne uruchomienie go jako administrator, ale nie zawsze jest to konieczne), a następnie uruchom poniższe polecenie:
netstat -ano | findstr :PORT_NUMBER
(Zamień PORT_NUMBER na żądany numer portu, ale zachowaj dwukropek)
Obszar zaznaczony na czerwono pokazuje PID (identyfikator procesu). Znajdź PID procesu korzystającego z żądanego portu.
Krok 2:
Następnie uruchom następujące polecenie:
taskkill /PID PID /F
(Tym razem nie ma dwukropka)
Na koniec możesz sprawdzić, czy operacja zakończyła się powodzeniem, ponownie uruchamiając polecenie w „kroku 1”. Jeśli się powiedzie, nie powinieneś widzieć więcej wyników wyszukiwania dla tego numeru portu.
taskkill //PID 12552 //F
taskkill /PID PORT_NUMBER /F
Krok 1 (to samo dotyczy zaakceptowanej odpowiedzi napisanej przez KavinduWije ):
Zmień w kroku 2 na:
Uwaga :
taskkill
nie działa w niektórych terminalach git bashźródło
W przypadku domyślnych narzędzi systemu Windows 10:
Otwórz program Windows PowerShell jako administrator
Znajdź PID (ProcessID) dla portu 8080:
Zabij proces zombie:
gdzie „77777” jest Twoim PID
źródło
set /p port="Enter port: "
-> Port wejściowyFOR /F "tokens=5" %%T IN ('netstat -aon ^| findstr %port% ') DO ( SET /A ProcessId=%%T) &GOTO SkipLine
:SkipLine
-> Wyodrębnia PID do zmiennejtaskkill /f /pid %ProcessId%
-> Zabija zadaniecmd /k
-> Nie zamykaj oknaJeśli używasz GitBash
Krok pierwszy:
Krok drugi:
(
/F
wymusza zakończenie procesu)źródło
W Windows PowerShell w wersji 1 lub nowszej, aby zatrzymać proces na porcie 3000:
Jak sugeruje @morganpdx tutaj jest więcej PowerShell-ish, lepsza wersja:
źródło
'Stop-Process' is not recognized as an internal or external command,
Stop-Process -Id (Get-NetTCPConnection -LocalPort 3000).OwningProcess -Force
Do użytku w wierszu poleceń:
Do użytku w pliku bat:
źródło
Jeśli znasz już numer portu, prawdopodobnie wystarczy wysłać sygnał zakończenia oprogramowania do procesu (SIGTERM):
źródło
lsof -nt -i4TCP:9001
samo.Użytkownicy systemu Windows mogą skorzystać z narzędzia CurrPorts , aby łatwo zabić używane porty:
źródło
Pracowałem w Zookeeper w systemie Windows i nie byłem w stanie zatrzymać ZooKeeper działającego na porcie 2181 przy użyciu zookeeper-stop.sh, więc wypróbowałem metodę podwójnego ukośnika „//” w celu wykonania zadania. Zadziałało
źródło
Jeśli używasz terminala Windows, proces zabijania może być nieco mniej uciążliwy. Korzystam z terminala systemu Windows i
kill PID
działa dla mnie dobrze, aby zabijać procesy na porcie, ponieważ nowy terminal systemu Windows obsługuje niektóre polecenia bash. Na przykład:kill 13300
Cały proces będzie wyglądał następująco:
netstat -ano | findstr :PORT
kill PID
Na przykład:
Zobacz, kiedy wpisałem pierwsze polecenie, aby wyświetlić listę procesów na porcie, który zwrócił pusty. Oznacza to, że wszystkie procesy są teraz zabijane.
źródło
kill
. Złożę post tutaj, jeśli znajdę.Możesz to zrobić, uruchamiając plik nietoperza:
źródło
Jeśli chcesz to zrobić za pomocą Pythona: sprawdź Czy w Pythonie można zabić proces nasłuchujący na określonym porcie, na przykład 8080?
Odpowiedź Smunka działa dobrze. Powtarzam jego kod tutaj:
źródło
Jedno liniowe rozwiązanie korzystające z GitBash :
Zamień 8080 na port, którego nasłuchuje serwer.
Jeśli musisz go często używać, spróbuj dodać do swojej
~/.bashrc
funkcji:i po prostu biegnij
źródło
Możemy tego uniknąć, po prostu ponownie uruchamiając IIS, używając poniższego polecenia:
źródło