minlog
article thumbnail
Published 2023. 10. 19. 00:37
[ Linux ] nohup 명령어 BackEnd/Linux

기본적으로 터미널에서 세션 로그아웃(logout)이 발생하면, 리눅스는 해당 터미널에서 실행한 프로세스들에게 HUP signal 이 전달하여 종료한다.
nohup은 이름에서 볼 수 있듯 이 명령을 무시한다. 때문에 nohup 명령어를 사용하면 터미널에서 연결이 끊기거나 종료해도 실행했던 프로세스들이 계속해서 실행될 수 있다.

다른 특징으로는 nohup 명령어를 사용할 경우 터미널이 종료되어도 표준 출력을 nohup.out 파일에 계속 기록되고 나중에 프로세스의 상태를 확인할 수 있도록 해준다.
하지만 필요 이상의 로그가 기록될 경우 파일의 용량이 커지므로 디스크 공간이 낭비 될 수 있다. (꼭필요한 logging level을 설정해준 뒤 서버에 올려야할 것 같다.)

 

 

1. nohup 을 사용한 백그라운드(&) 실행

nohup [ 명령어 ] &

EX > nohup java -jar travel-0.0.1-SNAPSHOT.jar &

& 를 함께 사용하면 프로그램이 백그라운드로 실행이 되게 된다.
nohup 명령은 프로그램을 실행시 세션과 연결이 끊기더라도 프로세스가 계속 동작된다. 하지만 대기상태가 발생하고 CTRL + C를 누를 시 프로세스가 종료 된다. 백그라운드(&)는 실행 시 대기 상태가 없지만, 세션 연결이 끊기면 실행한 프로그램도 함께 종료된다.
때문에 함께 사용하게 되면 대기 상태도 없고 세션 연결이 끊기더라도 프로세스의 종료 없이 백그라운드로 실행할 수 있다.

 

 

2. nohup.out 파일 생성 막기

nohup [ 명령어 ] >/dev/null &

nohup.out 파일을 생성하지 않으려면 표준출력과 표준에러를 /dev/null 로 설정 하면된다.

nohup [ 명령어 ] 1>/dev/null 2>&1 &
  • 1>/dev/null : 표준 출력을 사용하지 않게 설정
  • 2>&1 : 출력을 또한 표준출력과 동일한 곳으로 설정

 

 

3. 사용중인 리스트 확인

현재 실행중인 프로세스 리스트가 출력된다.

ps -ef

 

 

4. 사용중인 포트 종료

kill -9 processID
  • 검색한 리스트의 두번째 숫자 processID
  • -9 : 강제 종료를 의미하는 인자

 

'BackEnd > Linux' 카테고리의 다른 글

[ Linux ] 리눅스 문서 편집기 - vi 편집기  (0) 2023.02.21
[ Linux ] 파일 명령어  (0) 2023.02.21
[ Linux ] 디렉터리 명령어  (0) 2023.02.21
profile

minlog

@jimin-log

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!