nohup이란?
- 리눅스에서 명령어나 쉘 스크립트 파일을 데몬 형태로 실행시키는 프로그램
- 일반적으로 터미널에서 명령어를 실행하면, 해당 터미널 세션이 종료될 때 함께 종료
- nohup은 터미널이나 세션이 종료되어도 해당 프로세스가 종료되지 않고, 동작하여 진행한 작업이 완료될 때까지 수행할 수 있도록 함
nohup 사용하기
sh 파일 생성: 현재 시간을 반복적으로 출력하는 test.sh 생성
$ vi test.sh
while true
do
echo $(date)
sleep 1
done
권한 설정: nohup으로 스크립트 파일을 실행하려면, permission은 755 이상으로 설정
$ chmod 755 test.sh
nohup으로 실행: nohup 명령어를 사용해서 test.sh 실행
$ nohup ./test.sh &
- 백그라운드로 실행하기 위해 & 사용
- 표준 출력과 표준 오류는 기본적으로 nohup.out이라는 파일에 기록
$ tail -n 3 nohup.out
- nohup.out의 가장 마지막 라인을 보면, test.sh가 실행되면서 지속적으로 현재 시간이 추가됨
$ tail -n 3 nohup.out
- 터미널 세션 종료 후 다시 접속해서 nohup.out 확인하기
- nohup.out의 가장 마지막 라인을 확인해보면, 지속적으로 현재 시간이 추가됨
- 세션이 종료되어도 해당 프로세스가 종료되지 않고 실행되고 있음을 확인
$ ps -ef | grep test.sh
- ps -ef를 통해 현재 프로세스가 수행 중임을 확인
종료하기: test.sh을 종료하려면, kill 명령어에 해당 프로세스 ID를 입력
$ kill 5958
$ ps -ef | grep test.sh
요약
- nohup은 주로 장기 실행 작업(예: 백업, 데이터 처리 스크립트 등)에 사용되며, 작업이 터미널 세션 종료로 인해 중단되지 않도록 보장
- nohup으로 실행된 프로세스는 수동으로 종료하지 않는 한 계속 실행되기 때문에, 프로세스를 종료하려면 kill 명령어를 사용하여 종료
'Linux' 카테고리의 다른 글
[Linux] date 명령어 (0) | 2024.09.03 |
---|---|
[Linux] 실행 중인 프로세스 백그라운드로 변경하기 (0) | 2024.09.03 |
[Linux] su, sudo, sudoers (1) | 2024.09.03 |
[Linux] 리눅스 파일 권한 Permission (1) | 2024.05.02 |
[Linux] 기본 명령어 (0) | 2023.08.27 |