
메타코딩 유튜브를 참고하여 정리한 내용입니다.
nohup java -jar *.jar > mylog.out & : 웹 서버 표준 출력을 mylog.out로 설정하기
다른 터미널에서 접속하여 mylog.out 파일 확인하기 (tail -f mylog.out)
nohup java -jar v1-0.0.1-SNAPSHOT~1.jar & 을 실행한다.
v1-0.0.1-SNAPSHOT~1.jar 라는 실행 파일이 존재하지 않아 ERROR가 발생한다.
현재 에러와 표준 출력 실행 결과 (nohup.out 에 저장됨)
🔔 현재는 nohup.out으로 출력된다.
(1) 에러 출력 : 2
(2) 표준 출력 : 1
nohup java -jar 파일명 1>log.out 2>err.out : 표준 출력 1은 log.out, 에러 출력 2은 err.out
➡️ 나누는 이유 : 배포를 위해서 작성했던 모든 명령어들을 스크립트로 작성할 것이다. 이때 자동화가 필요하다. 스크립트 파일 실행시 이때까지 한 내용들을 한 번에 실행되게 할 것이다.
이때, 실행이 되지 않는다면, 에러 로그를 확인한다.
이때, 실행이 잘된다면, 표준 출력 로그를 확인한다.
✔️ error가 발생했을 때

cat error.out 입력시, Error: Unable to access jarfile v1-0.0.1-SNAPSHOT.jarr 파일에 접근할 수 없다고 출력된다.cat log.out 입력시 아무 것도 출력되지 않는다.
✔️ 정상적으로 실행될 때

cat error.out : 출력된 내용이 없다.cat log.out : 정상적으로 서버가 실행되며, 출력 결과를 볼 수 있다.
이와 같이 할시,
error.out 파일을 확인하면 된다!log.out을 확인하면 된다.log.out 확인할 때 끝부분만 확인하는 방법 : tail -f log.out 
timedatectl list-timezones | grep Seoul : 서울 시간sudo timedatectl set-timezone Asia/Seoul : 서울 시간을 timedatectl에 설정한다.
- 이전까지는
ps -ef에서 확인했었다.- 이제는 프로그램 코드를 작성하여, 실행시킬 것이다!
✔️ echo
터미널에서 표준 출력하기
ex)

ps -ef | grep *.jar 입력시
*.jar 을 가진 실행 파일을 출력한다.여기서 grep을 가진 녀석을 제외시키려면?
ps -ef | grep *.jar | grep -v grep 이다!
그리고, 제외시킨 녀석의 PID를 알고 싶다면?
현재 제외시킨 녀석의 프로세스 정보이다.
ubuntu 63869 63049 2 12:12 pts/0 00:00:06 java -jar v1-0.0.1-SNAPSHOT.jar
ps -ef | grep *.jar | grep -v grep | awk '{print $2}' 을 입력하면, 해당 프로세스 PID를 출력한다.
근데, 입력 내용이 되게 복잡하다!
대책 사항으로
🔔 프로세스 ID(PID)를 찾을 때 사용하기 좋은 명령어
pgrep -f *.jar
✏️ pgrep
vi spring-stop.sh : 스크립트를 작성한 파일 실행
Springboot Stop.....를 출력하라SPRING_PID=$(pgrep -f *.jar)$(명령어) : 명령어의 결과를 리턴한다. SPRING_PID에 명령어(pgrep -f *.jar)결과를 입력한다. SPRING_PID=63956와 같이 입력된다. (63956은 PID 이다.)echo $SPRING_PID$변수 : 변수의 값을 출력 혹은 실행한다. kill -9 $SPRING_PID$SPRING_PID : 프로세스 번호가 저장되어 있다.
실행파일로 만들어줘야 한다. (현재 실행 파일이 아니다.)
u : rw → rwx (파일 소유자에게 실행 권한 주기)
./spring-stop.sh으로 실행시
echo 출력 내용, PID가 출력되며 종료되었다.netstat -nlpt로 출력해보니 8080번 port가 없어졌다!