bash: kill service on port

Apr 12, 2012 20:42

updated: от ext_109957:
Эдакие сложности.
Так проще и надёжнее:
fuser -n tcp [port number] -k

netstat -lntp | grep -E '^tcp +[^ ]+ +[^ ]+ +[^ ]+:2013 ' | awk '{print $7}' | grep '^[0-9]\+' -o | xargs -r kill

netstat -lntp - listening, numeric output, TCP, show processes ( Read more... )

tips, shell

Leave a comment

Comments 7

ext_109957 April 12 2012, 17:01:26 UTC
Эдакие сложности.
Так проще и надёжнее:
fuser -n tcp [номер порта] -k

Reply


ext_73081 April 12 2012, 18:57:15 UTC
Уже написали про fuser -n tcp, и да, в таком сыром виде повезёт пользователю grepulya, но кому-то точно достанется лишнего:

netstat -lntp | grep -E '^tcp +[^ ]+ +[^ ]+ +[^ ]+:80'
tcp 0 0 0.0.0.0:8010 0.0.0.0:* LISTEN 2802/psi
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2532/nginx

Reply

_winnie April 12 2012, 19:02:51 UTC
Спасибо. Исправил свой пост, добавил пробел.

Reply


gegmopo4 April 12 2012, 21:23:04 UTC
grep|awk|grep заменяется на один awk или sed.

Reply


sorcerer_ April 12 2012, 22:26:49 UTC
Про fuser смешно.

$ fuser -n tcp 8080
tcp: fuser: No such file or directory
8080: fuser: No such file or directory

Непонятно только, какое отношение упомянутые "гнуизмы" имеют к башу?

Reply

gegmopo4 April 13 2012, 08:54:54 UTC
Никакого. Все используемые команды - не встроенные.

Reply

_winnie April 13 2012, 10:03:34 UTC
Как не встроенные?! пайп - встроенныей, синтаксис "command param1 param2 param3" - шелловский. Без bash/sh/... придётся писать не netstat -lntp , а какой-нибудь #include ... execl("/bin/netstat", "-lntp").

Reply


Leave a comment

Up