ec2에서 24시간 유지를 위해 백그라운드 실행을 하는데 로그가 남지 않아서 디버깅하기 어려웠다. 로그 남기기 남기기 위해서 아래와 같이 명령어를 사용했다.
sudo nohup java -jar app.jar --spring.profiles.active=server > log.txt 2>&1 &
그런데 위 명령어만 사용하면 rds url을 호출하는 환경변수에 문제가 있다며 애플리케이션 실행이 안된다.
sudo 명령어를 사용하면, 현재 사용자의 환경변수가 아닌 root 사용자의 환경변수를 사용하게 된다. 따라서 현재 사용자의 환경변수에 액세스해야 하는 애플리케이션의 경우, sudo를 사용하면 문제가 발생할 수 있다.
sudo를 제외하고 nohup java -jar app.jar --spring.profiles.active=server > log.txt 2>&1 &
이렇게 명령어를 입력하니 정상적으로 실행된다.
이제 tail -f log.txt
를 입력하면 백그라운드 실행 상태에서도 log 확인이 가능하다.