<상황>
스프링 부트로 프로젝트를 하고 aws에 올리던 와중 Caused by: java.net.Socketexception: Permission이 발생.
java -jar ~.war(또는 jar)를 실행하고 나니 이런 에러가 뜬다.
AWS linux ubuntu이다.
<원인>
리눅스는 일반사용자에게 well known port(~1024) 사용권한을 주지 않는다.
-> sudo로 실행하면 해결가능! 아래는 내가 실행을 쉽게 하기 위해 진행한 쉘스크립트이다. 먼저 BackEnd라는 디렉토리로 이동(git에 BackEnd라고 레포지토리를 만들었다. git clone한 상황임.)
build할 때는 test를 진행하지 않게 했다. (-x test 옵션. 시간차이 꽤 많이 난다.)
t2.micro라서 너무 느렸다..(swap 메모리 설정하니까 엄청 빨라짐.. 다른 글에서 설명하겠음..)
마지막에 sudo로 java -jar를 실행. sudo를 붙여준 것 만으로 잘 동작한다.! sudo로 붙어야 well known port 사용가능!!
쉘 스크립트 설명
1. mariadb를 실행시키고 확인. 확인하는 창이 올라오면 q를 눌러서 해당 창에서 나갈 수 있다.
2. gradlew build -x text : 테스트 없이 빌드 진행. 시간 차이 많이남.
3. sudo nohup, & ssh를 종료해도 계속 돌아가게 하는 명령어.

'코딩 > Linux, AWS' 카테고리의 다른 글
linux 파일찾기 (0) | 2020.07.15 |
---|