운영 서버에 수정한 파일을 반영하면 서버를 재가동 하게 된다. 하지만 가끔씩 재가동이 안될 때가 있다. 그에 대한 해결 방안을 조금이나마 제시하려고 한다.
우선적으로 SSH를 통해 서버를 재가동 할 때는 2개의 창을 켜서 한 쪽에서는 서버의 로그를 살펴보면서 진행하는 것을 권한다. 대체로 서버 재가동이 안되는 이유에 서버가 다 내려가지 않았는데 다시 켰을 경우가 많기 때문이다. 서버의 로그를 보는 방법은 서버의 logs 폴더까지 이동한 후 tail -f catalina.out 명령어를 입력하면 된다.
일단 서버의 bin 폴더가 위치한 경로까지 이동한다. 그 다음 ./shutdown.sh로 서버를 종료시켜준다. 그 다음은 서버가 잘 내려갔는지 확인하는 작업이다.
서버가 다 내려갔는지는 어떻게 알 수 있을까?? 일단 해당 서버를 사용하는 웹사이트에 접속해보면 알 수 있다. 서버가 내려갔다면 웹페이지에서 503 에러를 발견할 수 있을 것이다. 503 에러는 현재 서버를 이용할 수 없다는 HTTP 상태 코드이다.
확실하게 알고자 한다면 ps -ef | grep tomcat 명령어를 써보자. 현재 작동하고 있는 톰캣 서버가 몇 개인지 알 수 있다. 해당 명령어를 입력하면 굉장히 긴 로그들이 줄지어 나올 것이다. 당황하지 말고 쭉 긁어서 메모장에 옮겨 놓자. 그리고 root라는 글자를 기준으로 보기 쉽게 한 칸씩 띄어놓는다. 각각이 하나의 프로세스를 의미한다. 각각의 프로세스마다 -D라는 글자를 기준으로 개행을 하면 한 눈에 들어온다.
각각의 프로세스 중에 서버가 위치한 경로와 비슷한 경로가 있는지 찾아본다. 예를 들어, 서버의 경로가 /home/yoon/tomcat/bin 이라면 아마 /home/yoon/jdk1.8/bin/java 라는 경로를 가진 프로세스가 있을 겻이다. 사실 서버를 내렸다면 해당 경로를 가진 프로세스가 있으면 안된다. 만약 있다면 서버가 제대로 안 내려갔다는 소리이다. 이 상태에서 서버를 재시작 하게 되면 2개의 서버가 돌아감으로 웹사이트가 제대로 동작을 하지 못할 것이다.
서버를 종료했는데도 위와 같은 프로세스가 살아있다면 해당 프로세스를 kill -9 [pid] 로 강제 종료 시켜준다. (pid는 프로세스 아이디로 root 뒤에 있는 숫자를 뜻한다.) 꼭 해당 프로세스만을 종료시켜야 한다!!!!
kill -9 8080 이런 식으로 종료시킨 다음 ./startup.sh로 서버를 재시작 하면 자아아알 돌아갈 것이다.
'개발' 카테고리의 다른 글
웹 취약점 조치 방안 (0) | 2024.04.02 |
---|---|
하나 또 배웠다. (0) | 2024.02.28 |
SSL 인증서 갱신 방법 톺아보기 (0) | 2024.02.23 |
레거시 코드 파악하는 법 (0) | 2024.01.31 |
<![CDATA[ ~~~ ]]>란?? (0) | 2024.01.31 |