Voici le processus que je veux tuer:
sooorajjj@Treako ~/Desktop/MerkMod $ sudo netstat -tunap | grep :80
tcp6 0 0 :::80 :::* LISTEN 20570/httpd
Il existe plusieurs façons de déterminer quel processus en cours d'exécution utilise un port.
À l'aide de l'unité de fusion, il donnera le (s) PID des multiples instances associées au port d'écoute.
sudo apt-get install psmisc
sudo fuser 80/tcp
80/tcp: 1858 1867 1868 1869 1871
Après l'avoir découvert, vous pouvez soit arrêter, soit tuer le (s) processus.
Vous pouvez également trouver les PID et plus de détails en utilisant lsof
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)
Pour limiter aux sockets qui écoutent sur le port 80 (par opposition aux clients qui se connectent au port 80):
sudo lsof -i tcp:80 -s tcp:listen
Pour les tuer automatiquement:
sudo lsof -t -i tcp:80 -s tcp:listen | sudo xargs kill
-k
commutateur pour tuer tous les processus correspondants et-i
pour tuer de manière interactive (vous invitant à chacun).Voici un oneliner qui montre la commande à exécuter:
Remplacez
echo
parsudo
pour que le processus soit réellement tué.la source
echo
poursudo
80
.Trois options pour la liste des ports ouverts sont offerts dans jsh de
whatisonport
:Je préfère
netstat
car il est rapide, concis et peut lister les ports ouverts par d'autres utilisateurs. (Bien qu'il ait toujours besoin de privilèges de superutilisateur / utilisateur pour répertorier les noms et les PID de ces processus.)Les sorties
L'utilisation de
grep
dans deux cas consiste à faire correspondre uniquement le port du côté local et à ignorer les connexions ouvertes à un port distant 80. (Une alternative serait d'utiliser-l
avecnetstat
ou aveclsof
à utiliser-sTCP:LISTEN
, mais j'aime les greps ci-dessus car ils attraper également les connexions sortantes du port donné, ce qui peut parfois être intéressant.)Avec
lsof
nous utilisons-P
pour afficher:80
au lieu de:http
rendre le grep possible. L'-S 2
option obligelsof
à se terminer en temps opportun.Tuer le processus
En supposant que nous voulons utiliser
netstat
, nous pourrions saisir les PID comme ceci:Et nous pourrions même transmettre ces PID à
kill
:Cependant, il existe souvent un risque de faux positif lors de l'utilisation d'expressions rationnelles, donc je recommanderais simplement de regarder la sortie initiale de
netstat
puis de décider manuellement d'exécuter ou non:Voir également
J'ai un autre script appelé
listopenports
qui peut être intéressant.la source
Vous avez déjà découvert le processus à tuer: c'est le numéro de processus
20570
et son binaire a le nomhttpd
écrit à la fin de la ligne de sortie denetstat
. Vous pouvez le tuer par numérokill 20570
ou par nom,killall httpd
mais je ne recommanderais pas de le faire de cette façon.Les ports inférieurs à 1024 ont une utilisation standardisée (normalement), vous pouvez les rechercher et bien d'autres avec
less /etc/services
. L'entrée pour le port 80 est même commentée:Il s'agit donc très probablement d'un serveur Web. Le nom que vous avez est
httpd
etman httpd
devrait vous donner le grand indice que c'est le binaire Apache qui convient. Apache est l'un des grands acteurs, il dispose de programmes de gestion confortables, mais vous n'en avez pas besoin pour une simple action de démarrage / arrêt.Vous avez de la menthe? Avec un bureau normal? Regardez ensuite dans le
Control Center
dessousSystem
et cliquezServices
. Vous devez être administrateur pour y faire quoi que ce soit. Faites défiler la liste jusqu'à ce que vous trouviez quelque chose intitulé "serveur Web" (j'ai lighttpd au lieu d'Apache et je ne sais pas exactement à quoi ressemblerait l'entrée Apache) et décochez-la.Si vous voulez juste l'arrêter temporairement, essayez dans la console
et commencer par
sudo service start httpd
.service --status-all
renvoie une liste de tous les servicesservice
connus et pouvant être traités. Un raccourci pour redémarrer un service (c'est-à-dire: l'arrêter et le démarrer dans cet ordre) estservice --full-restart SERVICE
d'SERVICE
être le nom du service, par exemple:httpd
dans le cas d'Apache.La plupart des programmes que vous trouvez
netstat
peuvent être gérés de cette manière. Certains ne peuvent pas et certains n'ont même pas de page de manuel mais ceux-ci sont rares.la source
Il existe un moyen simple de procéder. Vérifiez d'abord quel processus utilise le port 80 par netstat :
Vous avez maintenant le nom du processus et tuez le processus avec la commande killall :
la source
killall
sans explication ni avertissement.