System Settings

리눅스 명령어: nohup – 로그아웃해도 프로세스를 계속 실행하는 방법

midworker 2025. 5. 19. 22:41
반응형

nohup이란?

nohup"no hang up"의 줄임말로,
터미널 세션이 종료되더라도 해당 명령어로 실행된 프로세스는 중단되지 않고 계속 실행되도록 하는 리눅스 유틸리티입니다.

주로 백그라운드 실행 + 로그아웃 유지 목적으로 사용됩니다.


기본 사용법

nohup [명령어] &
  • nohup: SIGHUP(세션 종료) 신호를 무시하도록 설정
  • [명령어]: 실행할 명령 또는 스크립트
  • &: 명령어를 백그라운드로 실행

출력 파일 (nohup.out)

기본적으로 nohup으로 실행한 명령어의 출력은 현재 디렉토리의 nohup.out 파일에 저장됩니다.

nohup some-command &
  • 표준 출력(STDOUT)과 표준 에러(STDERR)가 nohup.out으로 리디렉션됨

원하는 로그 파일로 출력하려면 다음과 같이 사용합니다:

nohup some-command > mylog.log 2>&1 &

실전 예시

1. Spring Boot 애플리케이션 실행

nohup java -jar app.jar > app.log 2>&1 &
  • app.log에 실행 로그 기록
  • 터미널 종료해도 앱은 계속 실행됨

2. 쉘 스크립트 실행

nohup ./backup.sh > backup.log 2>&1 &

실행 확인 및 종료

프로세스 확인

ps -ef | grep app.jar

또는 포트 기준 확인:

lsof -i :8080

프로세스 종료

kill -9 [PID]

참고 사항

항목 설명
로그아웃 영향 없음 SSH 세션을 종료해도 실행 중인 프로세스 유지
로그 파일 주의 nohup.out이 계속 쌓이므로 logrotate 설정 권장
tmux/screen 대안 명령어 상호작용이 필요한 경우 tmux, screen 사용 고려

결론

nohup은 서버 운영 중 백그라운드에서 오랫동안 실행되는 작업에 필수적인 도구입니다.
SSH 연결이 끊기더라도 작업을 유지할 수 있기 때문에,
스크립트 실행, 배치 작업, 애플리케이션 기동 등에 널리 사용됩니다.


반응형