특정 포트에서 실행되는 서비스를 중지시키는 스크립트를 작성하려고합니다. 이것은 내 스크립트입니다 :
a=$(ps ax | grep 4990 | grep java | awk '{print $1}')
kill -9 $a
자바 프로그램입니다. 이 스크립트는 때때로 작동하지만 대부분의 경우 신비하게 실패합니다.
포트에서 실행중인 서비스를 종료하는 다른 방법이 있습니까? 내 포트는 4990
입니다.
답변
당신은 시도 할 수 있습니다 fuser
:
fuser -k 4990/tcp
또는를 사용 lsof
하여 프로세스 ID를 얻은 후 다음으로 피드하십시오 kill
.
kill $(sudo lsof -t -i:4990)
답변
포트 번호 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의 특정 포트에서 프로세스를 종료하는 방법
답변
<?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";
}
?>
- PHP 파일 만들기
kill.php
- 필요한 포트로 PHP 파일을 실행하십시오.
$ php kill.php 8088