본문 바로가기
Linux

[Linux] nohup 이용하여 백그라운드로 실행하기

by ga.0_0.ga 2023. 7. 29.
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
반응형

댓글