728x90
📌 nohup 사용법
$ nohup [프로세스] &
// java -jar파일 예시
// ex) $ nohupb java -jar test.jar &
📌 nohup
- 리눅스에서 프로세스를 실행한 터미널의 세션 연결이 끊기더라도 프로세스를 계속해서 동작하는 명령어
- 기본적으로 터미널에서 세션 로그아웃(logout)이 발생하면 리눅스는 해당 터미널에서 실행한 프로세스들에게 HUP signal이 전달하여 종료시기게 됨
- 이 HUP signal을 프로세스가 무시(ignore)하도록 하는 명령어라 nohup이라는 이름인 것
📌 &
- 프로세스를 실행할 때 백그라운드에서 동작하도록 만드는 명령어
- &만 붙여도 백그라운드에서 작업을 수행하기는 하지만, 사용자가 터미널 세션을 끊어버리면 백그라운드로 작업중인 작업도 같이 종료가 되어 추후 문데가 생길 소지가 다분함.
- 옵션설정: nohup
✋ nohup으로 실행할 쉘스크립트파일(*.sh)은 현재 펴미션이 755이상 상태여야 함
ex) chmod 755 shell.sh
📌 nohup.out
- nohup 으로 배포 시, nohup.out 파일이 생성됨
- nohup 명령어는 표준 출력(standard output)을 nohup.out파일로 재지향(redirection) 함
- 프로세스가 실행되는 동안 stdout으로 출려되는 모든 내용이 nohup.out으로 쌓임 ⇒ log
- 시간이 오래 지나면 nohupb.out 용량이 커지게 됨 ⇒ 디스크 공간을 낭비할 수도 있음
따라서, 꼭 필요한 로그만 출력하거나, 로그를 남기는 것이 불필요한 경우 재지향을 통해 nohup.out파일을 생성하지 않도록 하는 것이 좋음
📌 nohup 실행 시 log 파일 관리
✋ 숫자의 의미
0 : 표준 입력
1 : 표준 출력
2 : 표준 에러
1. 배포시 nohup.out파일 생성하지 않기
⇒ nohup.out 파일을 생성하지 않으려면 표준출력과 표준에러를 /dev/null 로 재지향 해주면 됨
$ nohup [프로세스] 1>/dev/null 2>&1 &
// 예시
// $ nohup java -jar test.jar 1>/dev/null 2>&1 &
- 1>/dev/null : 표준출력을 사용하지 않겠다는 의미
- 2>&1 : 표준에러를 표준출력과 같게(/dev/null) 만듬
2. 이미 실행 중인 프로세스의 nohup.out 파일을 0 bytes로 만들기
$ cat /dev/null > nohup.out
3. nohup.out경로 또는 파일명 변경
🔸 파일명 변경
$ nohup java -jar test.jar > log.out &
// 또는
$ nohup java -jar test.jar > log.out 2>&1 &
🔸 write 덮어쓰기
// ">" ⇒ 덮어쓰기
& nohup [프로세스] > [파일] 2>&1 &
// 예시
// $ nohup java -jar test.jar > /home/ubuntu/test/log.out 2>&1 &
🔸 append 이어쓰기
// ">>" ⇒ 이어쓰기
& nohup [프로세스] >> [파일] 2>&1 &
// 예시
// $ nohup java -jar test.jar >> /home/ubuntu/test/log.out 2>&1 &
- > : 덮어쓰기
- >> : 이어쓰기
- /home/ubuntu/test/ : 경로
- log.out : 파일명
4. 표준 출력과 표준 에러 따로 관리
$ nohup [프로세스] 1>[파일1] 2>[파일2] &
//예시
// $ nohup java -jar test.jar 1>output.log 2>error.log &
- 1> output.log : 표준 출력을 "output.log"라는 파일에 전달
- 2> error : 표준 에러를 "error.log"라는 파일에 전달
5. nohup으로 실행한 프로세스를 종료
ps -ef | grep [프로세스명]
# PID 식별 후
kill -15 [PID]
# 종료
kill -9 [PID]
// 예시
// ex) ps -ef | grep java
// ex) kill -9 1220
nohup으로 실행한 프로세스 종료
📖 참고
- nohup 세션이 끊겨도 계속 실행되도록 해보자 - https://gracefulprograming.tistory.com/128
- nohup이란 - https://ingnoh.tistory.com/42
728x90
'🎯 etc > Linux' 카테고리의 다른 글
[ nohup ] nohup.out 날짜별 로그 관리 (0) | 2022.12.14 |
---|---|
[ timezone ] 우분투 시간대(timezone) 변경하기 (0) | 2022.12.14 |
[ Shell ] 쉘(Shell) 스크립트 작성방법 및 vi 명령어 (0) | 2022.12.14 |
[ Ubuntu ] 환경변수 설정 (0) | 2022.11.16 |
댓글