./shutdown.sh
tomcat /bin
디렉토리 에서 tomcat 을 닫으려고했습니다 . 그러나 서버가 제대로 닫히지 않았다는 것을 알았습니다. 따라서 다시 시작할 수 없었습니다 .
바람둥이가 포트에서 실행 중입니다 8080
.
에서 실행중인 Tomcat 프로세스를 종료하고 싶습니다 8080
. 먼저 종료 할 프로세스를 선택하기 위해 특정 포트 (8080)에서 실행중인 프로세스 목록을 갖고 싶습니다.
./shutdown.sh
tomcat /bin
디렉토리 에서 tomcat 을 닫으려고했습니다 . 그러나 서버가 제대로 닫히지 않았다는 것을 알았습니다. 따라서 다시 시작할 수 없었습니다 .
바람둥이가 포트에서 실행 중입니다 8080
.
에서 실행중인 Tomcat 프로세스를 종료하고 싶습니다 8080
. 먼저 종료 할 프로세스를 선택하기 위해 특정 포트 (8080)에서 실행중인 프로세스 목록을 갖고 싶습니다.
답변:
그러면 fuser 8080/tcp
해당 포트에 프로세스 바운드 PID가 인쇄됩니다.
그리고 이것은 fuser -k 8080/tcp
그 과정을 죽일 것입니다.
Linux에서만 작동합니다. 보다 보편적 인 것은 lsof -i4
(또는 IPv6의 경우 6)입니다.
fuser
. 지원하지 않는 파일 만 가져옵니다 -k
.
fuser: command not found
psmisc를 설치하십시오. CentOS / RHEL 7의 경우sudo yum install psmisc
포트 8080을 수신하는 프로세스를 나열하려면 다음을 수행하십시오.
lsof -i:8080
포트 8080을 수신하는 프로세스를 종료하려면 다음을 수행하십시오.
kill $(lsof -t -i:8080)
또는 더 심하게 :
kill -9 $(lsof -t -i:8080)
( 신호에 -9
해당 SIGKILL - terminate immediately/hard kill
: Kill 신호 목록 및 kill 명령에서 -9 옵션의 목적은 무엇입니까?를 참조하십시오 .에 신호가 지정되지 않은 경우 kill
TERM 신호가 일명 -15
또는 soft kill
전송됩니다. 프로세스).
sudo
sudo lsof -i:8080
.
명령을 사용하십시오
sudo netstat -plten |grep java
사용 grep java
으로 tomcat
사용 java
자신의 프로세스로.
포트 번호와 프로세스 ID를 가진 프로세스 목록을 보여줍니다.
tcp6 0 0 :::8080 :::* LISTEN
1000 30070621 16085/java
이전의 번호 /java
는 프로세스 ID입니다. 이제 kill
명령을 사용 하여 프로세스를 종료하십시오.
kill -9 16085
-9
프로세스가 강제로 종료됨을 나타냅니다.
netstat
.
특정 포트에서 LISTEN 만 죽이려면이 한 줄짜리를 추가하십시오.
kill -9 $(lsof -t -i:3000 -sTCP:LISTEN)
lsof 명령을 사용할 수 있습니다. 여기와 같은 포트 번호는 8090입니다
lsof -i:8090
이 명령은이 포트에서 열린 프로세스 목록을 리턴합니다.
같은 것…
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ssh 75782 eoin 5u IPv6 0x01c1c234 0t0 TCP localhost:8090 (LISTEN)
포트를 해제하려면 포트를 사용하여 프로세스를 종료하십시오 (프로세스 ID는 75782입니다).
kill -9 75782
이것은 나를 위해 일했습니다. 다음은 원래 게시물의 링크입니다.
포트 번호 8080에서 실행중인 프로세스를 종료하려면 먼저 8080 포트 프로세스 식별 번호 (PID)를 찾아서 종료해야합니다. 다음 명령을 실행하여 8080 포트 번호 PID를 찾으십시오.
sudo lsof -t -i:8080
여기,
따라서 다음 명령을 사용하여 PID를 쉽게 죽일 수 있습니다.
sudo kill -9 <PID>
여기,
다음 명령을 사용하여 하나의 명령을 사용하여 특정 포트에서 프로세스를 종료 할 수 있습니다.
sudo kill -9 $(sudo lsof -t -i:8080)
자세한 내용은 다음 링크를 참조하십시오 .Linux의 특정 포트에서 프로세스를 종료하는 방법
sudo kill -9 $(sudo lsof -t -i:8080)
나를 위해 일했다
특정 포트에서 모든 프로세스를 종료하는 가장 좋은 방법;
kill -9 $(sudo lsof -t -i:8080)
실행중인 모든 프로세스 ID를 지정합니다 <port_number>
.
fuser -n tcp <port_number>
또한 stderr에 일부 내용을 인쇄하므로 다음을 수행하십시오.
fuser -n tcp <port_number> 2> /dev/null
그런 다음이 프로세스 ID를 kill
명령에 제공 할 수 있습니다 .
sudo kill $(fuser -n tcp <port_number> 2> /dev/null)
당신이 그것을 많이하면 이것을 함수에 넣을 수도 있습니다.
function killport() {
sudo kill $(fuser -n tcp $1 2> /dev/null)
}
lsof -i tcp:8000
이 명령은 포트 8000에서 실행중인 프로세스에 대한 정보를 나열합니다.
kill -9 [PID]
이 명령은 프로세스를 종료합니다
세부 정보 (pid, 주소 등)와 함께 시스템에서 실행중인 모든 포트의 목록을 알 수 있습니다 .
netstat -tulpn
다음 명령에서 포트 번호 를 제공 하여 특정 포트 번호의 세부 사항을 알 수 있습니다 .
sudo netstat -lutnp | grep -w '{port_number}'
예 : sudo netstat -lutnp | grep -w '8080'세부 사항은 다음과 같이 제공됩니다.
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
pid를 사용하여 프로세스를 종료하려면 다음을 수행하십시오 .kill -9 {PID}
포트 번호를 사용하여 프로세스를 종료하려면 다음을 수행하십시오 .fuser -n tcp {port_number}
sudo
액세스 할 수없는 경우 사용 하십시오.
사용 가능한 Linux 도구 세트가 제한된 Yocto Linux 시스템에서 작업하고 있습니다. 특정 포트 (1883)를 사용하고 있던 프로세스를 종료하고 싶었습니다.
먼저, 어떤 포트를 듣고 있는지 확인하려면 다음 명령을 사용했습니다.
root@root:~# netstat -lt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:hostmon 0.0.0.0:* LISTEN
tcp 0 0 localhost.localdomain:domain 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:9080 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:1883 0.0.0.0:* LISTEN
tcp 0 0 :::hostmon :::* LISTEN
tcp 0 0 localhost:domain :::* LISTEN
tcp 0 0 :::ssh :::* LISTEN
tcp 0 0 :::1883 :::* LISTEN
다음으로 포트 1883을 사용하여 다음과 같은 방법으로 프로세스 이름을 찾았습니다.
root@root:~# fuser 1883/tcp
290
root@root:~# ps | grep 290
290 mosquitt 25508 S /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
12141 root 8444 S grep 290
위에서 볼 수 있듯이 프로그램입니다 /usr/sbin/mosquitto
포트 1883을 사용 입니다.
마지막으로 프로세스를 종료했습니다.
root@root:~# systemctl stop mosquitto
systemctl
이 경우에는 시스템화 된 서비스 인 becuase를 사용 했습니다.
무엇 @ veer7 에 구축 말한 것을 :
포트에 무엇이 있는지 알고 싶다면 죽이기 전에 수행하십시오.
$ sudo netstat -plten |grep java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 1000 906726 25296/java
tcp6 0 0 :::8009 :::* LISTEN 1000 907503 25296/java
tcp6 0 0 :::8080 :::* LISTEN 1000 907499 25296/java
$ ps 25296
PID TTY STAT TIME COMMAND
25296 ? Sl 0:16 /usr/lib/jvm/java-8-openjdk-amd64/bin/java -Dcatalina.base=/hom
'ps'와 netstat가보고 한 프로세스 수를 사용하십시오.
Git Bash와 다른 방법 :
stopProcessByPortNumber() {
port=":${1}"
portStrLine="$(netstat -ano | findstr LISTENING | findstr $port)"
processId="$(grep -oP '(\d+)(?!.*\d)' <<< $portStrLine)"
echo $processId
taskkill -PID $processId -F
}