DEV/Server

게임서버 구축하기(2) - aws에 spring 배포

꿀먹는돼지 2022. 6. 21. 17:47

 bootRun



 터미널 꺼버리면 서버도 같이 죽어서 
 https://blog.naver.com/PostView.nhn?blogId=writer0713&logNo=221542130445&redirect=Dlog&widgetTypeCall=true&directAccess=false

 이제 터미널 꺼져도 서버가 안죽는다. 
 
 1. ./gradlew bootRun   
 
 nohup하면 백그라운드 확인해야 한다. - 끌려면 pid kill 해야한다. 
 
 netstat -ano | findstr 8080

 nohup  ./gradlew bootRun   

error


깃 클론 후 ./gradlew bootRun를 돌리려고 하니 에러가 났다.. 

 

Starting a Gradle Daemon (subsequent builds will be faster)
FAILURE: Build failed with an exception.

.gradle/7.1/fileHashes/fileHashes.lock (Permission denied)

 

퍼미션 문제라고 한다. 

 

 

- > gradle 폴더에 permission 오류

 

sudo chmod -R 777 {프로젝트 최상위폴더명}

https://stackoverflow.com/questions/58829633/filehashes-lock-access-is-denied

 

 


 

 PID Kill 


 윈도우 PID Kill 


실행중인 PID 보기 

netstat -ano | findstr 8080

  TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       32588
  TCP    [::]:8080              [::]:0                 LISTENING       32588
  TCP    [::1]:8080             [::1]:61539            TIME_WAIT       0
  TCP    [::1]:61538            [::1]:8080             TIME_WAIT       0

 

PID 상세 정보 보기

 tasklist /FI "PID eq 32588"
 
 이미지 이름                    PID 세션 이름              세션#  메모리 사용
========================= ======== ================ =========== ============
java.exe                     32588 Console                    3    191,088 K

 

kill PID

 taskkill /f /pid 32588

 

 

 

 

 

외부 톰캣으로 하려다가 만거. spring boot 내부 톰캣으로 가즈아 

더보기

sudo apt-get update 명령어-  apt 패키지가 업데이트 

sudo apt-get install openjdk-8-jre

sudo apt-get install openjdk-8-jdk

 

(자바버전 확인)

$javac -version
javac 1.8.0_312
$ java -version
openjdk version "1.8.0_312"

 

 

$ which javac
/usr/bin/javac <- 자바 위치

$ readlink -f /usr/bin/javac
/usr/lib/jvm/java-8-openjdk-amd64/bin/javac <- 자바위치 풀 경로

 

환경변수 설정

1. sudo nano /etc/profile 해서 

맨 아래 3줄 추가

  # 환경변수
  export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
  export PATH=$JAVA_HOME/bin:$PATH
  export CLASS_PATH=$JAVA_HOME/lib:$CLASS_PATH

 

ctrl + o : 저장

ctrl + x : 나오기

 

source /etc/profile

sudo reboot now 

 

-----------------

서버 재부팅 후 

echo $JAVA_HOME

$JAVA_HOME/bin/javac -version

잘 나오는지 확인 

 

 

톰캣 설치 겁나 안됨

 

sudo apt-get install tomcat 

 

에러 메세지:

E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?

 

-> 해결방법 su 로 root 권한으로 가면 된다고 한다. 

 근데 비밀번호 모름;; -> 해결방법 : sudo su (aws 기본 비번 설정 안되어있어서 그냥 root로 전환가능)

  * 비번 설정하는법  https://12teamtoday.tistory.com/48

아 그래도 또 E: Unable to locate package tomcat8 뜨면서 안되는데

해결방법 ->  아직 안함. 2022-06-21

 

filezila sftp 전송 실패 ㅡㅡ


해결방법: 권한 문제

$ sudo chown ubuntu 폴더명

ubuntu인 이유는, 내가 filezila를 우분투로 접속했당~

 

좋아~ 

서버 실행~ 


java -jar gameServer1-1.0-SNAPSHOT.jar

Exception in thread "main" java.lang.UnsupportedClassVersionError: com/example/gameServer1/AppMain has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

자바 55 : java 11

자바 52 : java 8

 ;;

 

자바 버전 업 해줘야 한다. 

 

 

1. su - root

2. apt-get update

3. apt install yum

    -> E: Unable to locate package yum  .... ? 아 제발~ 

[solved] E: Unable to locate package yum

sourcelist에 접속할 yum url 이 필요하다

 

1) sourcelist 백업하기

cd /etc/apt/

sudo cp sources.list sources.list.back

 

2) vi 편집기로 맨 아래 접속 url 추가 하기 

sudo vi sources.list

deb http://archive.ubuntu.com/ubuntu bionic main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu bionic-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu bionic-updates main restricted universe multiverse

3) sudo -apt update

잘된다. 

 

4. java 8 삭제

 sudo apt-get remove openjdk*

 sudo apt-get autoremove --purge

 sudo apt-get autoclean

5. java 11 설치 

$ sudo apt-get install openjdk-11-jdk

java -version 하면

-bash: /usr/lib/jvm/java-8-openjdk-amd64/bin/java: No such file or directory

이렇게 출력된다..; 아 홈 변수 ..

 

 

$ vim /etc/profile

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

로 변경..

 

source /etc/profile

 

 

이 명령어로 프로파일 재실행..

java -version

openjdk version "11.0.15" 2022-04-19

OpenJDK Runtime Environment (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1)

OpenJDK 64-Bit Server VM (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1, mixed mode, sharing)

/etc/apt# 

 

java -jar gameServer1-1.0-SNAPSHOT.jar

뭐야.. 된거야 머야

 

아.. 일단 백그라운드에서 계속 돌게 하기

https://solbel.tistory.com/1433

 

[springboot] 스프링부트 jar 파일 백그라운드 실행방법

[springboot] 스프링부트 jar 파일 백그라운드 실행방법 리눅스에서 jar 파일로 빌드된 스프링부트 프로젝트를 실행할때는 아래와 같은 명령어를 실행하면 됩니다. java –jar [빌드된 jar 파일] 하

solbel.tistory.com

 

nohup으로 실행해야 한다. 

- nohup : 백그라운드로 실행하겠다는 명령어, 맨 마지막에 & 를 붙여야 한다. 

nohup java –jar [빌드된 jar 파일] &

화면에 

nohup: ignoring input and appending output to 'nohup.out'

 

출력 = > 정상적으로  nohup.out 파일에 저장된다는 뜻

 

그래서 nohup 실행 확인은? 


jar 파일 명이 gameserver~

 

ps -ef | grep gameserver

ubuntu     78541   78448  0 08:51 pts/0    00:00:00 grep --color=auto gameserver

그래서 서버 접속은?


1. 보안 그룹 추가

2. postman 으로 전송해보기  - done.