728x90
반응형
리눅스에서 프로그램을 실행할 때 종료없이 백그라운드에서 계속 실행된 상태로 두어야 하는 경우가 있습니다. 그럴때는 "nohup"과 "&" 명령어를 이용하면 됩니다.
- nohup 명령어
"nohup"은 "no hang up"의 약자입니다. 해석 해보면 "끊지마" 입니다.
- nohup 사용하기
실행하고자 하는 프로그램 앞에 붙여 사용해주면됩니다. "test.py" 라는 파이썬 파일을 백그라운드로 실행하고 싶을 때는 아래처럼 하면 됩니다.
nohup python test.py
이때, test.py는 반드시 755 permission을 가지고 있어야 합니다.
위 명령어를 실행하면 아래와 같은 문구가 출력됩니다.
nohup: appending outout to 'nohup.out'
현재 디렉토리에 nohup.out이라는 파일이 생성되고 그 파일안에 로그내용이 기록된다는 뜻입니다. 만약 다른 파일에 출력하고싶다면 아래와 같이 해주면 됩니다.
nohup python test.py > my_log.out
- & 명령어
&를 프로그램 실행시에 맨 뒤에 붙여주면 역시 백그라운드에서 실행됩니다.
python test.py &
- nohup과 &의 차이점
그렇다면 두 명령어의 차이점이 무엇일까요?
nohup은 프로그램을 daemon형태로 실행시키는 것입니다. 로그아웃으로 세션이 종료되더라도 프로그램이 종료되지 않습니다. 반면에 &는 단지 백그라운드에서만 실행하는 것이므로 세션이 종료되면 함께 종려됩니다. 대부분의 경우에는 아래 처럼 두 명령어를 조합하여 사용합니다.
nohup python test.py &
728x90
반응형
댓글