죽여도 죽지 않는 좀비 프로세스 죽이기

파이 ఇ·2023년 7월 25일
1
post-thumbnail

죽여도 죽여도 죽지 않는 프로세스를 죽이는 법을 공유하기 위해 이 글을 씁니다..
어캐 알았냐고요? 저도 알기 싫었음

일반적으로 프로세스 죽이는 방법

  1. 터미널에 들어가 원하는 port를 찾는다.
lsof -i :포트번호
  1. 해당 port의 PID를 확인 후 프로세스를 죽이면 된다.
kill -9 PID번호

? ? 이렇게 간단한데 왜 내 프로세스는 안죽지 ?

세상에서 이렇게 kill을 많이 한 적은 오늘이 처음인데..
누굴 이렇게 죽이고싶단 마음이 많이 든 것도 오늘이 처음이다. 진짜임.
어떻게 해야할 지 당황하며 다른 방법을 찾아보던 도중 부모 프로세스를 죽이면 된다고 했다 !
마음을 다스리고 천천히 다시 시도해보자.

부모 프로세스를 죽여보자

  1. 죽이고 싶은 port의 PID를 알기 위해 port를 찾는다.
MacBook-Air ~ % lsof -i :3306

COMMAND  PID       USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
mysqld   2148      user   20u  IPv4 0x8f092f19738178b1   0t0    TCP  localhost:mysql (LISTEN)
  1. PID를 찾았으니 이제 부모port를 찾아보자
MacBook-Air ~ %  ps -ef | grep 2286 | grep -v grep
501 2148 2214      0   10:41PM ??     ~생략~
501 98049 54312    0   9:55PM ??      ~생략~
  • 2148은 좀비 port, 2214는 좀비의 부모 port 이제 얘를 죽이면 되겠지?
  1. 끝 ?
MacBook-Air ~ % kill -9 2214
MacBook-Air ~ % lsof -i :3306
COMMAND  PID    USER   FD   TYPE             DEVICE  SIZE/OFF  NODE  NAME
mysqld  2286    user   20u  IPv4 0x8f092f19738178b1    0t0     TCP   localhost:mysql (LISTEN)

✨ ✨ 🌸 ✨ 쨘 ✨ 나 아직 안죽었찌롱 ✨ 💖 ✨ ✨ ✨

아 쫌 ㅠ 제발 왜그러시는데요 ㅠ
하지만 인생은 칠전팔기. . 굴하지 않고 오늘 어떻게든 죽이기로 마음 먹고 다시 시도를 해보겠습니다.

MacBook-Air ~ % lsof -i :3306
COMMAND  PID       USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
mysqld   2286      user   20u  IPv4 0x8f092f19738178b1   0t0    TCP  localhost:mysql (LISTEN)

PID를 먼저 찾았다.

ps -ef | grep 2286 | grep -v grep
501  2286  2184   0 10:41PM ??         0:00.77 /opt/homebrew/opt/mysql/bin/mysqld --basedir=/opt/homebrew/opt/mysql --datadir=/opt/homebrew/var/mysql --plugin .. 생략
501 84156 41254   0  9:55PM ??         0:00.09 /Applications/zoom.us.app/Contents/Frameworks/.. 생략

다시 보니 homebrew 어쩌고 저쩌고.. 이전에 homebrew를 설치했다가 삭제한 적이 있는데 루트 경로에 mysql을 설치하고 실행시켰었나보다.. 🤦🏻‍♀️

엥 그런데 더 자세히 보니 mysql?d?

mysql 프로세스가 자꾸 재실행을 시켜 죽여도 죽지않는 좀비 프로세스가 탄생한 줄 알았는데 자세히 보니 mysqld???? mysqld는 뭐지 ?

💡 mysqld란 ? 간단히 설명해 mysql+D(Daemon의 약자)이다.
mysqld백그라운드에서 돌아가고 있는 프로세스, MYSQL 서버이고
mysql은 우분투의 터미널처럼 sql문을 실행시켜주는 command-line client이다.

mysqld도 뭔지 알아냈으니 이제 경로를 따라가 백그라운드에서 돌고있는 애를 찾아 삭제하고 죽이면 될거같다 ! ! ! !

MacBook-Air ~ % cd /opt/homebrew/opt
MacBook-Air opt % ls
~~~ 생략 ~~~
git		libevent	libnettle	libtool		mysql		protobuf

mysql. . . 너 이시끼. . . 드디어 찾았다. . . 지금 죽이러 갑니다 . . .

MacBook-Air opt % rm -rf mysql
MacBook-Air opt % ls
~~~생략~~~
git		libevent	libnettle	libtool		mysql@8.0		protobuf

? 이번엔 mysql@8.0이 되었네 ? 끝까지 가보자;

MacBook-Air opt % rm -rf mysql@8.0
MacBook-Air opt % ls
~~~생략~~~
git		libevent	libnettle	libtool		protobuf

mysql 폴더는 없앴다 이제 다시 port를 찾아서 죽여버리자.

MacBook-Air opt % lsof -i :3306   
COMMAND  PID       USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
mysqld  2286 user   20u  IPv4 0x8f092f19738178b1      0t0  TCP localhost:mysql (LISTEN)
MacBook-Air opt % kill -9 2286
MacBook-Air opt % lsof -i :3306

쨘 !!!!! ✨ clear~ ✨

여러분도 이기세요 전 이겨냈거든요 화이팅 🍑✨🎶

Ref. https://zetawiki.com/wiki/%EC%95%88_%EC%A3%BD%EB%8A%94_%EC%A2%80%EB%B9%84_%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4_%EC%A3%BD%EC%9D%B4%EA%B8%B0

profile
⋆。゚★⋆⁺₊⋆ ゚☾ ゚。⋆ ☁︎。₊⋆

0개의 댓글