IJY
느리더라도 꾸준히
IJY
전체 방문자
오늘
어제
  • 분류 전체보기 (67)
    • Develop (67)
      • Java (8)
      • Go (0)
      • Test (1)
      • Web (1)
      • HTML, CSS (1)
      • TIL(Today I Learned) (18)
      • SQL (0)
      • Algorithm (27)
      • 회고 (7)
      • Troubleshooting (1)
      • Etc (3)
    • Etc (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기

공지사항

인기 글

태그

  • 12921
  • 초기화
  • sort
  • 재귀
  • 소수 찾기
  • recursion
  • Class
  • 우테코 온보딩
  • Spring
  • html
  • 독후감
  • PostConstruct
  • Interceptor
  • object
  • REST Assured
  • MVC
  • BufferedWriter
  • EntityTransaction
  • Filter
  • 프로그래머스
  • 백준
  • web
  • API 예외 처리
  • init
  • stream
  • java
  • 회고
  • BufferedReader
  • instance
  • 알고리즘

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
IJY
Develop/Troubleshooting

Mac] kill processor script

Develop/Troubleshooting

Mac] kill processor script

2023. 2. 15. 17:02

Mac에서 IntelliJ를 사용하며 Spring 프로젝트를 실행시키는 경우에 종종 프로세스가 정상적으로 종료가 안되어 8080 포트가 계속 사용되면서 재실행이 안되는 경우가 발생한다.
그렇다고 이러한 경우가 매우 자주 발생하는 것은 아니다 보니 8080 포트를 사용 중인 프로세스를 찾아서 죽이는 방법을 까먹게 되더라..
그때마다 다시 찾아서 사용하기가 불편해서 그냥 스크립트로 만들어서 쓰기로..
그렇게 만든 스크립트를 만든 김에 공유하고자 블로그에 남겨둡니다.

 

쉘 스크립트 코드

더보기
#!/bin/sh

PORT=$1
if [ -z "$PORT" ]; then
  PORT=8080
fi
echo "Port : $PORT"

if [[ "$PORT" = *[a-zA-Z]* ]]; then
  echo "Port is only number support"
  exit 1
fi

echo "Checking processor...\n"
lsof -i tcp:$PORT

if [ $? -eq 1 ]; then
  echo "Not found processor"
  exit 0
fi

echo "\nKill processor..."
kill $(lsof -t -i:$PORT)
sleep 1

echo "\nChecking processor after killing..."
lsof -i tcp:$PORT

if [ $? -eq 1 ]; then
  echo "Processor killing success!!!"
else
  echo "Sorry, processor killing fail"
fi

해당 스크립트의 동작 쉘을 "/bin/sh"로 잡아두었기 때문에 Linux 계열에서는 정상적으로 동작될 거라고 예상합니다. (안될 지도..)

텍스트 편집기(nano, vim, ...)를 통해 위 코드를 저장 후 "chmod 755 저장한_파일명" 명령으로 실행 가능하도록 변경 후 사용하시면 됩니다. 실행은 "./저장한_파일명"으로 실행합니다. (chmod 명령을 사용하지 않았더라면 권한 문제로 실행 불가)

 

해당 스크립트는 기본적으로 8080 포트를 사용하는 프로세스를 죽입니다.

혹시나 다른 포트를 사용하고 있는 프로세스를 죽이고 싶다면 "./저장한_파일명 포트"로 실행시키면 됩니다.

 

아래는 직접 사용한 예입니다.

# 해당 포트를 사용 중인 프로세스가 없는 경우

$ ./kill_processor.sh
Port : 8080
Checking processor...

Not found processor

# 해당 포트를 사용 중인 프로세스가 있는 경우

$ ./kill_processor.sh
Port : 8080
Checking processor...

COMMAND  PID    USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
java    4016 *******   54u  IPv6 0xbf3480b87f20433b      0t0  TCP *:http-alt (LISTEN)

Kill processor...

Checking processor after killing...
Processor killing success!!!

# 다른 포트를 사용 중인 프로세스를 죽이고자 하는 경우

./kill_processor_8080_port.sh 4040
Port : 4040
Checking processor...

Not found processor
    IJY
    IJY
    개발 관련 공부한 내용을 정리하는 블로그입니다. 느리더라도 꾸준히 포스팅을 하려고 노력합니다.

    티스토리툴바

    개인정보

    • 티스토리 홈
    • 포럼
    • 로그인

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.