본문 바로가기
Operating System/Linux

[Linux] 프로세스 백그라운드로 실행 시키기 - nohub, &

by 스파이디웹 2024. 1. 27.
728x90
리눅스에서 shell파일,python 파일과 같은 파일을 실행 시킬 때, 세션이 끊어져도(서버가 아닌 ssh로 붙은 개인 pc를 꺼야 하는 상황이라던가) 백그라운드에서 계속 돌게끔 해야 하는 상황이 있을 수 있습니다.

 

그럴 때 사용하는 백그라운드로 프로세스를 실행 시키는 명령어에 대해서 정리해보겠습니다.


1. nohup(no hang up)

  • 끊지말라는 뜻
  • nohup으로 실행된 프로세스는 데몬형태로 실행

원하는 프로그램의 앞에 nohup을 붙여주면 됨

nohup ./경로/shellfile이름.sh

 

nohup으로 실행 시킬 파일은 755 권한을 가지고 있어야 

2. &

  • 백그라운드로 실행

원하는 프로그램의 뒤에 &를 붙여주면 됨

./경로/shellfile이름.sh &

프로세스 확인해보기

ps -ef | grep ./경로/shellfile이름.sh

3. nohup vs &

nohup은 프로그램을 데몬형태로 실행 시키는 것이라, 세션이 끊겨도 계속 실행 되는데

&는 예전에는 사용자 눈에 보이지않는 백그라운드 형태로 실행시키는 것이였기 때문에 세션이 끊기면 프로그램이 중단 됐었다.

 

하지만 요즘에는 &도 nohup과 마찬가지로 세션이 끊어져도 계속 실행되는 옵션이 디폴트로 적용 되었기 때문에 동일한 기능으로 볼 수 있다.

# nohup과 &를 같이 사용하는게 사용자들에게 익숙한 형태로 자리잡았다.
nohup ./경로/shellfile이름.sh &

 

프로그램 종료

# 프로세스 종료
kill -9 pid

 

참조:

https://joonyon.tistory.com/entry/%EC%89%BD%EA%B2%8C-%EC%84%A4%EB%AA%85%ED%95%9C-nohup-%EA%B3%BC-%EB%B0%B1%EA%B7%B8%EB%9D%BC%EC%9A%B4%EB%93%9C-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%82%AC%EC%9A%A9%EB%B2%95

728x90

댓글