Re: Cybercable, SN3200, et dhcpcd
On Tue, Mar 30, 1999 at 01:31:44PM +0200, Stephane Bortzmeyer wrote:
> Autrement, il faut suivre le conseil de Christian. Un coup de 'netstat
> --all --inet' vous donnera une bonne idée de tous les démons qui vous
> restent.
J'ai écrit un petit script qui affiche le PID et le nom des process qui
sont en écoute sur un port passé en argument (numero de port ou nom du
service). Ce script utilise les infos de /proc et ne devrait donc
fonctionner qu'avec un noyau 2.2.x
En fait, pour les démons "standards", les services en clair apparaissent
dans la commande netstat. Mon script n'est donc pas très utile pour
ceux-ci. Mais j'étais curieux de trouver quels étaient les process en
écoute sur les autres ports (non listés dans /etc/services), donc j'ai
écrit ce script.
Ex. d'utilisation :
# check_port www
PID NAME
21393 apache
21394 apache
21395 apache
21396 apache
21397 apache
31550 apache
6638 apache
9188 apache
#!/bin/bash
PORT=$1
if [[ "X$PORT" = "X" ]]
then
echo "Usage: check_port [port_number | service_name]"
exit 1
fi
if [[ "${PORT/*[0-9]/}" = "$PORT" ]]
then
PORT=`awk -v serv=$PORT '$1 == serv && $2 ~ /tcp$/ {sub(/\/tcp/,"",$2); print $2}' /etc/services`
fi
PORT_HEX=`echo "obase=16;$PORT" | bc`
PORT_HEX=`printf "%04X" 0x$PORT_HEX`
INODE=`cat /proc/net/tcp | awk -v port=:$PORT_HEX '$4 == "0A" && $2 ~ port {print $10}'`
for i in $INODE
do
PID=`for fd in /proc/[0-9]*/fd/*
do
ls -l $fd 2> /dev/null
done | grep "socket:\[$i\]" | awk -F '/' '{print $3}'`
done
echo "PID NAME"
for i in $PID
do
echo -e "$i \c"
cat /proc/$i/status | awk '$1 ~ /^Name/ {print $2}'
done | uniq
--
"How do you pronounce SunOS?" "Just like you hear it, with a big SOS"
-- dedicated to Roland Kaltefleiter
Reply to: