개인 자료란 (JE)

  서버 커뮤니티

Profile 보라색구미호 대표칭호 없음

kudansul 6d5511fbd0844e0aa7837820dbac8d01

Profile

시작하며....

안녕하세요 오랜만에 돌아왔습니다. 이번에는 마크서버가 고장날시 확인하고 수리해야할 부분중 OS단위에서
해결가능한 방법중 하나를 알려드리겟습니다.


PID ? 데몬?

PID프로세스 아이디 라는 뜻으로 리눅스나 유닉스 커널등에 프로세스에 붙혀지는 넘버입니다.
쉽게 말해서 저는 구단설 이라는 이름을 가지고 있습니다 그러면 누군가 저를 부를떄 저를 구단설 이라고 부릅니다.
이거처럼 프로세스는 현제 리눅스 서버 에서작동중인 프로그램이고 그 작동중인 프로그램에게 자동으로 부여되는 이름이
바로 PID
라는 것입니다. 프로그램들은 이 PID 들을 이용해서 서로를 식별하고 거기에 알맞은 작동을 합니다.
PID 는 실행된 프로그램 순서대로 이름이 부여됩니다. 현세대 리눅스의 대표적인 부팅프로그램중 하나인 systemd 는 PID 가
1번 입니다. 왜 1번 일까요? 이유는 부팅후 먼저 시작하는 작동중인 프로그램이기 때문입니다. 이제 이 systemd 에 의해 실행되는
프로그램들이 순서대로2번3번 이런식으로 PID를 부여받습니다
. 제가쓴 강좌중에 이거와 비슷한 내용이 있을껍니다.
그건 바로 screen -list 명령어 부분입니다. screen -list 해서 screen -r 로 서버에 접속하는걸 안다면 제가 먼말 할려는지는 알껍니다.
콘솔접속할때 쓰는번호가 마크서버의 PID입니다. 이제 이 리눅스 서버에서 작동중인 프로그램 은 머라고 부를까요?
바로 데몬 입니다.
악마라는 뜻은 아닙니다. 오해 하지 말아주세요. 이 데몬이 바로 PID를 부여받게 되는겁니다.
그러면 우리가 실행한 마크서버들은 데몬일까요? 으음 그게 사실 좀 애매하긴 합니다. 보통 데몬하면 systmed 관련 유틸로 확인하는게
일반적 데몬이긴 하나 PID부여받고 실행되니 데몬같고 이부분에서는 그냥 편의상 데몬이라고 생각하고 넘어가죠.


마크서버 데몬의 PID를 알아내기

마크서버 데몬의 PID를 알아내는 방법은 대표적으로 2 가지가 있습니다.
screen -list 하고 netstat 명령어 입니다. 이제 이론 넘어가고 진짜 실습해보겟습니다.
마크서버 키고 screen -list 를 쳐봅시다.
a851e90e71c2306128cf83abe8f1036a.png

저는 7306 이라는 PID를 부여받았네요.  자 우리 여기서 만일 서버가 터져 접속이 안된다고 가정해봅시다.
상황은 서버의 폭주로 서버가 크래쉬와 함께 비정상적인 종료를 해서 재시작을 하는데 서버가 안켜지고 로그에는 포트가 이미 열려있다 뜹니다.
이제 우리가 할일은 아래 명령어를 쳐보는겁니다.

[root@nadeshiko ~]# netstat -ntlp

1c620ce3b16a24b4248dbc7c9a448200.png

아래처럼 여러 정보들이 뜹니다. 여기서 맛이간 데몬은 마크서버 이죠 그러면 마크서버만 볼수있게 해볼까요?

[root@nadeshiko ~]# netstat -ntlp | grep 25565

a3f08316fd6aea14d4eeb5ecc8daf351.png

마크서버는 25565 포트가 기본입니다. 제가 친 명령어를 해석해겟습니다.
netstat -ntlp | grep 25565netstat 이라는 명령어를 옵션 -ntlp 를 주어 작동시키고 거기서 25565 라는 글자가 있는 줄만 표시한다. 라는 뜻입니다.
grep 명령어는 기본적으로 특정 글자가 있는 줄만 표시합니다.
이제 위 명령어로 25565 포트의 PID를 알아내보았습니다. 이제 PID를 부여받은 데몬을 죽여보겟습니다.

[root@nadeshiko ~]# kill -9 PID

PID에는 netstat -ntlp | grep 25565 또는 netstat -ntlp 명령어로 알아낸 마크서버의 PID 를 입력합니다.
저는7307 을 부여받았습니다.

ce150a4ff18e992483c1f8b84868ccf6.png

이게 끝입니다. 이제 screen -list 를 쳐봅시다.

7e01702861d758342dc7c353ddb96e80.png

이렇게 뜨면 성공입니다. 실제 서버가 터졌을때는 Dead?? 이런식으로 죽었다?? 로 뜹니다. 그럴떄는 screen -wipe 를 치신후 screen -list 명령어를 쳐주시면 됩니다. 그다음 다시 서버를 켜보시면 정상적으로 서버가 켜질것입니다.


마치며...

이 방법은 진짜 다양하게 써먹을수 있을뿐더러 |grep 조합은 진짜 자신의 입맛대로 써먹을수 있으며 어떨때는 서버 수리시간은 획기적으로
줄이고
 
당신의정신건강도 보장해줄수 있을것입니다. 오늘 배운 내용은 앞으로 진짜 중요하며 데몬,PID라는 용어는 리눅스 서버에서 알아두면
진짜 좋은 이론중 하나 입니다. 이거만 알아도 서버장애 났을떄 왜 고장났는지도 알수 있거든요.


https://discord.gg/2gxSqWu - 마인크래프트 개발자 디스코드

1개의 댓글

HELLO!
2020.04.06

윈도우는 다시시작하면 되는데 ... 암튼 감사합니다!

뉴스 및 창작물
/files/thumbnails/477/930/003/262x150.crop.jpg?20241201030912

레드스톤

뉴진스 - Super Shy | 마크 노트블럭 커버

노트블럭전문가

2024-12-01

0

/files/thumbnails/483/916/003/262x150.crop.jpg?20241127115329

레드스톤

[노트블럭 커버] 뉴진스 - ETA 3

노트블럭전문가

2024-11-27

1

/files/thumbnails/150/925/003/262x150.crop.jpg?20241123005717

건축

응답하라 1988 ? 1

팀뉴일리시

2024-11-23

5

/files/thumbnails/761/908/003/262x150.crop.jpg?20241025153749

건축

서울 숭례문(崇禮門) 6

KHC

2024-10-25

2

/files/thumbnails/578/899/003/262x150.crop.jpg?20241010142350

건축

경주 월정교 1

KHC

2024-10-10

2