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


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_id나 process id의가 port_id비어있을 수 있습니다, 그 때 우리는 이것을 사용 오류 오전의 종류를 피하기 위해, 일부 명령 오류가 발생합니다. 여기서 나는 주어진 포트의 정확한 프로세스 id를 죽일 수있다
— nivas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.