티스토리 뷰
간혹 Process를 기동하려다 보면 Binding Exception이 종종 발생하게 됩니다.
이에 오늘은 OS별 Port를 사용하고 있는 Process 찾는 방법을 알아보겠습니다.
죽이는 방법은 알아서~ kill로 죽이세요.
먼저 Windows입니다.
netstat -ano 명령어로 확인이 가능합니다.
해당 명령어를 아래와 같이 조합하여 사용중인 Process의 PID를 확인합니다.
Process ID는 4인것을 확인했고 작업 관리자 창에서 해당 Process가 무엇인지 확인해 볼까요?
자 해당 Process는 System Process임을 확인했습니다.
우클릭해서 죽이면 되는데.. System은 죽이면 안되겠죠?
두번째로 LINUX입니다.
LINUX는 fuser 명령어를 사용합니다.
[root@infrasvr ~]# fuser -h
Usage: fuser [ -a | -s | -c ] [ -n SPACE ] [ -SIGNAL ] [ -kimuv ] NAME...
[ - ] [ -n SPACE ] [ -SIGNAL ] [ -kimuv ] NAME...
fuser -l
fuser -V
Show which processes use the named files, sockets, or filesystems.
-a display unused files too
-c mounted FS
-f silently ignored (for POSIX compatibility)
-i ask before killing (ignored without -k)
-k kill processes accessing the named file
-l list available signal names
-m show all processes using the named filesystems
-n SPACE search in this name space (file, udp, or tcp)
-s silent operation
-SIGNAL send this signal instead of SIGKILL
-u display user IDs
-v verbose output
-V display version information
-4 search IPv4 sockets only
-6 search IPv6 sockets only
- reset options
udp/tcp names: [local_port][,[rmt_host][,[rmt_port]]]
[root@infrasvr ~]# fuser -n tcp 9736
9736/tcp: 18864
[root@infrasvr ~]#
tcp name space 중 9736 port를 사용하고 있는 Process pid는 18864입니다.
이후 잘알고 있는 ps 명령어로 확인 할 수 있겠죠
[root@infrasvr ~]# ps -ef | grep 18864
narason 18864 1 0 May17 ? 00:39:45 /usr/java/jdk1.7.0_07_x64/bin/java -DadminServer -Xmx1024m -XX:MaxPermSize=128m -server -Xbootclasspath/p:/user/narason/jeus7/lib/system/extension.jar -classpath /user/narason/jeus7/lib/system/bootstrap.jar -Djava.security.policy=/user/narason/jeus7/domains/jeus_domain/config/security/policy -Djava.library.path=/user/narason/jeus7/lib/system:/user/narason/webtob/lib:/user/narason/webtob/lib -Djeus.properties.replicate=jeus,sun.rmi,java.util,java.net -Djeus.jvm.version=hotspot -Djava.util.logging.config.file=/user/narason/jeus7/bin/logging.properties -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.util.logging.manager=jeus.util.logging.JeusLogManager -Djeus.home=/user/narason/jeus7 -Djava.net.preferIPv4Stack=true -Djeus.tm.checkReg=true -Djeus.bridge.log.level=FINEST -Dsun.rmi.dgc.client.gcInterval=3600000 -Djeus.tool.webadmin.locale.language=ko -Djeus.domain.name=jeus_domain -Djava.naming.factory.initial=jeus.jndi.JNSContextFactory -Djava.naming.factory.url.pkgs=jeus.jndi.jns.url -Djeus.server.protectmode=false -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=/user/narason/jeus7/logs/adminServer/jvm.log jeus.server.admin.DomainAdminServerBootstrapper -domain jeus_domain -server adminServer -u administrator
root 27468 27435 0 13:52 pts/4 00:00:00 grep 18864
[root@infrasvr ~]#
확인해 보니 narason 이라는 사용자가 adminServer라는 process를 기동하여 해당 port를 점유하고 있음을 알수 있습니다.
죽이는 방법은 알아서 잘 죽이시면 되구요
세번째로 UNIX 계열 HP-UX입니다.
사실 LINUX역시 사용할 수 있는 명령이인데요. 바로 lsof입니다. (Solaris 제외)
[nrson@hptest:/home/nrson]$ lsof | grep 9736 | grep LIST
java 28961 nrson 117u IPv4 0xe0000001730c2040 0t0 TCP *:9736 (LISTEN)
[nrson@hptest:/home/nrson]$ ps -ef | grep 28961
nrson 28961 1 0 May 18 ? 46:37 /opt/java_install/java7_09/opt/java7/bin/java -DadminServer -Xmx1024m -XX:MaxPermSize=128m -server -Xbootclasspath/p:/home/nrso
nrson 13609 9292 0 14:27:59 pts/0 0:00 grep 28961
[nrson@hptest:/home/nrson]$
확인해 보니 ?? 역시 JEUS7 adminServer가 기동되어 있는 것을 확인할 수 있습니다.
그럼 역시 죽이면 되겠네요.
네번째로 UNIX 계열 Solaris입니다.
ProcessSearch.sh
#!/usr/bin/bash
port=$1
for proc in `ptree -a | grep -v ptree | awk '{print $1};'`
do
result=`pfiles $proc 2> /dev/null| grep "port: $port"`
if [ ! -z "$result" ]
then
program=`ps -fo comm -p $proc | /usr/bin/tail -1`
ps -ef | grep $proc | grep -v grep
fi
done
root@suntest:/home/nrson> sh cpu.sh 9736
nrson 10876 1 0 13:07:30 pts/21 4:32 /usr/jdk1.7.0_10/bin/java -DadminServer -Xmx1024m -XX:MaxPermSize=128m -server
root@suntest:/home/nrson>
드디어 Solaris도 찾았습니다.
그럼 죽여야죠!
마지막 다섯번째로 UNIX 계열 AIX입니다.
aix의 경우 마찬가지로 lsof로 동일하게 찾을 수 있습니다.
[nrson@ibmtest:/home/nrson]$ lsof -i TCP:9736 | grep LIST
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 10203200 nrson 192u IPv4 0xf100060003b17398 0t0 TCP *:9736 (LISTEN)
[nrson@ibmtest:/home/nrson]$
간단하죠?
찾은 Process 10203200을 ps로 확인해 보면
[nrson@ibmtest:/home/nrson]$ ps -ef | grep 10203200
nrson 10203200 1 0 15:04:50 - 9:58 /usr/java6_64//bin/java -DadminServer -Xmx1024m -XX:MaxPermSize=128m -Xbootclasspath/p:/home/nrson/jeus7/lib/system/extension.jar -classpath /home/nrson/jeus7/lib/system/bootstrap.jar -Djava.security.policy=/home/nrson/jeus7/domains/jeus_domain/config/security/policy -Djava.library.path=/home/nrson/jeus7/lib/system -Djava.endorsed.dirs=/home/nrson/jeus7/lib/endorsed -Djava.util.logging.config.file=/home/nrson/jeus7/bin/logging.properties -Djeus.dispatcher.blocking=true -Djeus.home=/home/nrson/jeus7 -Djava.util.logging.manager=jeus.util.logging.JeusLogManager -Djava.net.preferIPv4Stack=true -Djava.util.prefs.PreferencesFactory=java.util.prefs.FileSystemPreferencesFactory -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djeus.properties.replicate=jeus,sun.rmi,java.util,java.net -Djeus.tm.checkReg=true -Djeus.tool.webadmin.locale.language=ko -Djeus.jvm.version=old -Djeus.domain.name=jeus_domain -Djava.naming.factory.initial=jeus.jndi.JNSContextFactory -Djava.naming.factory.url.pkgs=jeus.jndi.jns.url -Djeus.server.protectmode=false jeus.server.admin.DomainAdminServerBootstrapper -domain jeus_domain -server adminServer -u administrator
[nrson@ibmtest:/home/nrson]$
또 이놈이네요 kill ㄱㄱ
자 오늘은 OS별 PORT로 PROCESS 찾아서 죽이는(??) 방법을 알아봤습니다.
# 댓글과 추천은 글쓴이에게 힘이됩니다.!
'② 성능 최적화, 트러블 슈팅 > ⓣ TroubleShooting' 카테고리의 다른 글
[Memory Analyzer]HeapDump분석시 SUN Hot Spot계열 URL찾기 (1) | 2019.07.04 |
---|---|
[CPU 과점유 이슈] LINUX (0) | 2018.09.21 |
[503] Service Temporarily Unavailable에 대한 고찰 (1) | 2018.08.25 |
[500] Internal Server Error에 대한 고찰 (0) | 2018.08.20 |
[404] Not Found에 대한 고찰 (2) | 2018.08.18 |
- Total
- Today
- Yesterday
- jeus
- webtob
- Docker
- openstack tenant
- 오픈스택
- 쿠버네티스
- Architecture
- openstack token issue
- aa
- k8s
- aws
- JEUS6
- MSA
- Da
- 마이크로서비스 아키텍처
- TA
- SA
- nodejs
- API Gateway
- kubernetes
- git
- OpenStack
- apache
- JBoss
- node.js
- JEUS7
- 마이크로서비스
- SWA
- 아키텍처
- wildfly
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |