특정 포트에서 실행되는 모든 서비스 종료


13

특정 포트에서 실행되는 서비스를 중지시키는 스크립트를 작성하려고합니다. 이것은 내 스크립트입니다 :

a=$(ps ax | grep 4990 | grep java | awk '{print $1}')
kill -9 $a

자바 프로그램입니다. 이 스크립트는 때때로 작동하지만 대부분의 경우 신비하게 실패합니다.

포트에서 실행중인 서비스를 종료하는 다른 방법이 있습니까? 내 포트는 4990입니다.


스크립트는 또한 14990과 같은 다른 애완 동물에서 실행되는 Java 프로세스를 종료시킵니다.
roaima

답변:


32

당신은 시도 할 수 있습니다 fuser:

fuser -k 4990/tcp

또는를 사용 lsof하여 프로세스 ID를 얻은 후 다음으로 피드하십시오 kill.

kill $(sudo lsof -t -i:4990)

tcp를 java로 바꿔야합니까?
Abhishek py py

@Abhishekdotpy : 아뇨 tcp.
cuonglm

-t깃발을 주셔서 감사합니다 . 오랫동안 그렇게 필요했습니다.
잭슨

마지막 줄을 ssh에 올바르게 전달하는 방법에 대한 힌트를 줄 수 있습니까?
Vladimir Protsenko

@VladimirProtsenko 더 많은 컨텍스트를 제공 할 수 있습니까?
cuonglm

4

포트 번호 8080에서 실행중인 서비스 또는 프로세스를 종료하려면 먼저 8080 포트 프로세스 식별 번호 (PID)를 찾아서 종료해야합니다. 다음 명령을 실행하여 8080 포트 번호 PID를 찾으십시오.

sudo lsof -t -i:8080

여기,

  • sudo- 관리자 권한을 요청하는 명령 (사용자 ID 및 비밀번호).
  • lsof- 파일 목록 (관련 프로세스를 나열하는 데 사용됨)
  • -t- 프로세스 ID 만 표시
  • -i- 인터넷 연결 관련 프로세스 만 표시
  • : 8080- 이 포트 번호의 프로세스 만 표시

따라서 다음 명령을 사용하여 PID를 쉽게 죽일 수 있습니다.

sudo kill -9 <PID>

여기,

  • kill-프로세스를 종료하는 명령
  • -9-강력하게

다음 명령을 사용하여 하나의 명령을 사용하여 특정 포트에서 프로세스를 종료 할 수 있습니다.

sudo kill -9 $(sudo lsof -t -i:8000)

자세한 내용은 다음 링크를 참조하십시오 .Linux의 특정 포트에서 프로세스를 종료하는 방법


를 사용 kill -9하면 대상 프로세스를 정리할 기회가 없습니다. kill적어도 초기에는 plain을 사용하십시오 .
roaima

1
<?php
  $port = $argv[1]; 
  if(!empty($port) && is_numeric($port) ){
  $pid = trim(shell_exec("lsof -t -i:".$port));
  if(!empty($pid)){
     shell_exec("sudo kill -9 ".$pid);
     echo "pid : ".$pid."  killed which is listened port : ".$port."\xA";
  }
  else{
     echo " [X] no such process found for pid : ".$port."\xA";
  }
  }
  else{ 
     echo " invalid pid \xA";
  }
?>
  1. PHP 파일 만들기 kill.php
  2. 필요한 포트로 PHP 파일을 실행하십시오. $ php kill.php 8088

1
를 사용 kill -9하면 대상 프로세스를 정리할 기회가 없습니다. kill적어도 초기에는 plain을 사용하십시오 .
roaima

이 작업에 PHP를 사용하는 경우 +1
Bananguin

@ G-Man 실수로 추가 함
nivas

젠킨스와 함께이 실행 무리 프로세스를 사용하여 주어진 포트시의 정확한 프로세스 ID를 죽일 @Bananguin
Nivas은

스크립트 파일을 실행하고이 포함되어있는 경우 lsof -t -i:port_id빌드 프로세스 때 명령을 port_idprocess id의가 port_id비어있을 수 있습니다, 그 때 우리는 이것을 사용 오류 오전의 종류를 피하기 위해, 일부 명령 오류가 발생합니다. 여기서 나는 주어진 포트의 정확한 프로세스 id를 죽일 수있다
nivas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.