특정 IP에서 실행 중인 프로세스를 종료할 수 있는 방법이 있는지 알고 싶습니다.그리고Ubuntu 14.04의 로컬 IP 및 포트는 무엇입니까? 명령을 사용하는 것이 바람직하지만 그렇지 않은 경우 bash 스크립트가 완벽하게 좋습니다.
답변1
아마도 더 깔끔한 방법이 있을 것입니다. 하지만 다음과 같이 진행됩니다.
netstat -lnp | grep 'tcp .*127.0.0.1:9984' | sed -e 's/.*LISTEN *//' -e 's#/.*##' | xargs kill
답변2
다음을 사용하여 특정 IP 및 포트(src 및 포트용)를 수신하는 프로세스/연결에 대한 세부 정보를 ss
얻을 수 있습니다 .127.0.0.1
80
sudo ss -lp '( dport = :80 )' src 127.0.0.1
그러면 우리는 그것들을 PID
얻고 사용하고 grep
죽이는 데만 사용할 수 있습니다.xargs
kill
sudo ss -lp '( dport = :80 )' src 127.0.0.1 | grep -Po "(?<=pid=).*(?=,)"\
| sort | uniq | xargs kill
-a
대신 스위치를 사용하여 -l
모든 수신 및 비수신 소켓 목록을 가져올 수도 있습니다 .
답변3
fuser
Linux에는 원하는 작업을 정확하게 수행하는 옵션이 있습니다.
예를 들어 fuser 80/tcp
해당 포트에 바인딩된 프로세스의 PID를 인쇄하고 fuser -k 80/tcp
프로세스를 종료합니다.
답변4
로컬 컴퓨터의 프로세스가 실행될 수 있는 유일한 IP는 이라는 127.0.0.1
루프백 lo
장치 입니다 localhost
. 해당 포트는 네트워크 구성을 통해 공용 IP 주소로 전달될 수 있습니다.
나는 보통 sudo lsof -i :<port>
원인이 무엇인지 확인하는 데 사용합니다.EADDRINUSE타이핑이 더 빠르기 때문이죠.
sudo lsof -i :443 | tail -1 | cut -f2 -d' ' | xargs kill
lsof
다음 출력을 제공하면 포트 443에서 실행 중인 프로세스가 종료됩니다.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
python3 32233 cat 4u IPv4 24123106 0t0 TCP *:http-alt (LISTEN)
에서 lsof --help
:
-i i select by IPv[46] address: [46][proto][@host|addr][:svc_list|port_list]