Dies ist der Prozess, den ich töten möchte:
sooorajjj@Treako ~/Desktop/MerkMod $ sudo netstat -tunap | grep :80
tcp6 0 0 :::80 :::* LISTEN 20570/httpd
Es gibt verschiedene Möglichkeiten, um herauszufinden, welcher laufende Prozess einen Port verwendet.
Bei Verwendung der Fixiereinheit werden die PIDs der mehreren Instanzen angegeben, die dem Überwachungsport zugeordnet sind.
sudo apt-get install psmisc
sudo fuser 80/tcp
80/tcp: 1858 1867 1868 1869 1871
Nachdem Sie es herausgefunden haben, können Sie die Prozesse entweder stoppen oder beenden.
Sie können die PIDs und weitere Details auch mit lsof finden
sudo lsof -i tcp:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 1858 root 6u IPv4 5043 0t0 TCP ruir.mxxx.com:http (LISTEN)
nginx 1867 www-data 6u IPv4 5043 0t0 TCP ruir.mxxx.com:http (LISTEN)
nginx 1868 www-data 6u IPv4 5043 0t0 TCP ruir.mxxx.com:http (LISTEN)
nginx 1869 www-data 6u IPv4 5043 0t0 TCP ruir.mxxx.com:http (LISTEN)
nginx 1871 www-data 6u IPv4 5043 0t0 TCP ruir.mxxx.com:http (LISTEN)
Zur Begrenzung auf Sockets , die hören auf Port 80 (im Gegensatz zu Kunden gegenüber, die auf Port 80 verbinden):
sudo lsof -i tcp:80 -s tcp:listen
Um sie automatisch zu töten:
sudo lsof -t -i tcp:80 -s tcp:listen | sudo xargs kill
-k
Schalter hat, alle übereinstimmenden Prozesse zu beenden und-i
interaktiv zu beenden (was Sie zu jedem einzelnen auffordert).Hier ist ein Oneliner, der den auszuführenden Befehl anzeigt:
Ersetzen
echo
durch,sudo
damit der Prozess tatsächlich beendet wird.quelle
echo
fürsudo
80
.In jsh 's werden drei Optionen zum Auflisten offener Ports angeboten
whatisonport
:Ich bevorzuge,
netstat
weil es schnell und präzise ist und Ports auflisten kann, die von anderen Benutzern geöffnet wurden. (Obwohl weiterhin Superuser- / Benutzerrechte erforderlich sind, um die Namen und PIDs solcher Prozesse aufzulisten.)Ausgänge
Die Verwendung von
grep
in zwei Fällen ist auf der lokalen Seite nur den Hafen zu entsprechen, und übersprang offene Verbindungen zu einem Remote - Port 80 (Eine Alternative wäre die Verwendung-l
mitnetstat
oder mitlsof
zu verwenden-sTCP:LISTEN
, aber ich mag den greps oben , weil sie wollen Fangen Sie auch ausgehende Verbindungen vom angegebenen Port ab, was gelegentlich von Interesse sein kann.)Mit verwenden
lsof
wir,-P
um anzuzeigen,:80
anstatt:http
das grep möglich zu machen. Die-S 2
Option musslsof
rechtzeitig abgeschlossen werden.Den Prozess beenden
Angenommen, wir möchten verwenden
netstat
, könnten wir die PIDs wie folgt erfassen:Und wir könnten diese PIDs sogar weitergeben an
kill
:Bei der Verwendung von regulären Ausdrücken kann es jedoch häufig zu Fehlalarmen kommen. Daher würde ich empfehlen, nur die anfängliche Ausgabe von zu betrachten
netstat
und dann manuell zu entscheiden, ob Folgendes ausgeführt werden soll oder nicht:Siehe auch
Ich habe ein anderes Skript namens,
listopenports
das von Interesse sein kann.quelle
Sie haben bereits herausgefunden, welcher Prozess beendet werden soll: Die Prozessnummer
20570
und die Binärdatei haben den Namenhttpd
, der am Ende der Zeile der Ausgabe von stehtnetstat
. Sie können es nach Nummerkill 20570
oder Name töten,killall httpd
aber ich würde nicht empfehlen, es so zu machen.Ports unter 1024 werden (normalerweise) standardisiert verwendet. Sie können diese und viele andere Ports nachschlagen
less /etc/services
. Der Eintrag für Port 80 ist sogar kommentiert:Es handelt sich also höchstwahrscheinlich um einen Webserver. Der Name, den Sie haben, ist
httpd
undman httpd
sollte Ihnen den großen Hinweis geben, dass es die Apache-Binärdatei ist, die passt. Apache ist einer der großen Player. Es stehen einige komfortable Management-Programme zur Verfügung, die Sie jedoch nicht für eine bloße Start / Stopp-Aktion benötigen.Sie haben Minze? Mit einem normalen Desktop? Dann schauen Sie in das
Control Center
UnterSystem
und klicken SieServices
. Sie müssen Administrator sein, um dort etwas zu tun. Scrollen Sie nach unten, bis Sie etwas mit der Bezeichnung "Webserver" finden (ich habe lighttpd anstelle von Apache und weiß nicht genau, wie der Apache-Eintrag aussehen würde) und deaktivieren Sie es.Wenn Sie es nur vorübergehend stoppen möchten, versuchen Sie es in der Konsole
und beginnen mit
sudo service start httpd
.service --status-all
Gibt eine Liste aller Dienste zurückservice
, die bekannt sind und verarbeitet werden können. Eine Verknüpfung für einen Neustart eines Dienstes (das heißt: stop und es in dieser Reihenfolge starten) istservice --full-restart SERVICE
mitSERVICE
dem Namen des Dienstes zu sein, zB .:httpd
bei Apache.Die meisten Programme, mit denen Sie arbeiten,
netstat
können auf diese Weise behandelt werden. Einige können nicht und einige haben nicht einmal eine Manpage, aber diese sind selten.quelle
Es gibt einen einfachen Weg, dies zu tun. Überprüfen Sie zunächst, welcher Prozess Port 80 von netstat verwendet :
Jetzt haben Sie den Prozessnamen und beenden den Prozess mit dem Befehl killall :
quelle
killall
ohne Erklärung oder Warnung.