반응형
이 글은 공부하며 정리한 내용입니다. 틀리거나 보완할 점이 있다면 댓글로 알려주시면 감사하겠습니다.
1. 핵심 요약
- nohup은 사용자가 세션을 종료해도 프로세스를 종료하지 않고 유지시켜주는 명령어이다.
- 일반적으로 & (백그라운드 실행) 와 함께 사용하여, 터미널과 무관하게 작업을 지속시킬 수 있다.
- 실행 시 기본 로그는 nohup.out 파일에 저장되며, > 파일명 2>&1 형태로 로그 파일을 지정하는 것이 좋다.
- 실행된 프로세스 상태는 top, htop, 또는 ps 명령어로 확인 가능하다.
2. 상세 내용 설명
2-1. nohup이란?
- nohup은 no hang up의 약자이며, 로그아웃이나 터미널 종료 시에도 실행 중인 작업을 중단시키지 않도록 도와주는 명령어다.
- 데몬처럼 백그라운드에서 지속적으로 실행되며, 주로 긴 시간 실행되는 배치 작업, 학습 스크립트 등에 사용된다.
2-2. 백그라운드 실행과 로그 기본값
nohup python test.py &
- 위 명령어를 실행하면 test.py가 백그라운드에서 실행되며, 터미널을 닫아도 계속 동작한다.
- 기본 로그는 현재 디렉토리에 nohup.out으로 저장된다.
- 실행 직후 [1] 13847과 같은 메시지가 출력되며, 이는 백그라운드 작업 번호와 PID이다.
2-3. 로그 파일 이름 지정
nohup python test.py > log_file.log 2>&1 &
- 여러 작업을 동시에 실행하는 경우, 로그가 nohup.out 하나에 겹쳐서 저장되지 않도록 개별 로그 파일명을 지정하는 것이 좋다.
- 2>&1은 stderr(에러 출력)를 stdout(표준 출력)으로 리디렉션해 모든 로그를 하나의 파일로 통합하는 의미이다.
2-4. 실행 상태 확인 – top / htop / ps
- top: 기본 제공되는 실시간 프로세스 모니터링 툴
- htop: 시각화된 top, 필터/색상/직관적인 UI 제공 (설치 필요)
- ps aux | grep <스크립트명>: 실행 중인 프로세스 중 특정 스크립트나 명령어를 포함한 항목을 필터링하여 확인할 수 있는 명령어이다. 예를 들어, ps aux | grep test.py를 실행하면 현재 실행 중인 test.py 관련 프로세스 정보를 확인할 수 있다. 출력 결과에는 PID, 실행 경로, 상태 등의 정보가 포함된다.
💡 grep으로 필터링한 결과에도 grep 명령어 자체가 표시되는 경우가 있으므로, 이를 제외하려면 grep -v grep을 함께 사용할 수 있다:
ps aux | grep test.py | grep -v grep
htop 설치 방법
- Ubuntu:
sudo apt-get install htop
- CentOS:
sudo yum install htop
htop 사용
- q 또는 F10 키로 종료
- PID 기준으로 실행 중인 작업 필터링 가능
3. 결론
nohup은 서버에서 로그아웃 후에도 작업을 유지하거나, 무중단으로 백그라운드 작업을 지속해야 할 때 유용한 도구이다.
nohup + & 조합은 터미널 종료와 무관하게 실행이 가능하고, 로그 파일을 명시적으로 지정하면 여러 작업을 병렬로 관리하기도 수월하다.
top, htop, ps 명령어를 활용하면 실행 상태 모니터링도 가능하므로, 서버에서의 배치 처리 또는 장시간 학습 작업에 필수적인 도구라 할 수 있다.
4. 참고 자료
반응형
'Linux' 카테고리의 다른 글
[Linux] Ubuntu에서 RPM 파일 설치 (0) | 2022.02.19 |
---|---|
cron 개념, 사용법 정리 (0) | 2021.07.29 |
[Linux] 파일 개수 & 폴더(디렉터리) 개수 (0) | 2021.03.20 |
댓글