특정 포트에서 실행 중인 모든 서비스 종료

특정 포트에서 실행 중인 모든 서비스 종료

특정 포트에서 실행 중인 서비스를 종료하는 스크립트를 작성하려고 합니다. 이것은 내 스크립트입니다.

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

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

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

답변1

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

fuser -k 4990/tcp

또는 다음 을 사용하여 lsof프로세스 killID를 얻으십시오.

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

답변2

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

sudo lsof -t -i:8080

여기,

  • 스도- 관리자 권한(사용자 ID, 비밀번호)을 요청하는 명령어입니다.
  • 라소프- 파일 목록(관련 프로세스를 나열하는 데에도 사용됨)
  • -티- 프로세스 ID만 표시
  • -나- 인터넷 연결과 관련된 프로세스만 표시
  • :8080- 해당 포트 번호의 프로세스만 표시

이제 다음을 사용하여 PID를 쉽게 종료할 수 있습니다.

sudo kill -9 <PID>

여기,

  • Kill - 프로세스를 종료하는 명령
  • -9——강함

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

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

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

답변3

<?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

관련 정보