본문 바로가기

코딩/Linux, AWS

AWS linux Caused by: java.net.Socketexception: Permission denied 해결

 

<상황>

스프링 부트로 프로젝트를 하고 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