리눅스 nohup 사용 방법, &과의 차이
- 운영체제(OS)
- 2022. 9. 1.
리눅스에서 터미널을 종료하면 실행되고 있던 프로세스들 역시 종료됩니다. 터미널 세션이 끊어지더라도 프로세스가 계속 실행될 수 있는 방법은 없을까요? 그 방법이 nohup입니다.
이 글에선 nohup
의 사용 방법과 더불어 nohup과 함께 자주 사용되고, 비슷해 보이는 개념인 백그라운드 실행 명령어 &
도 설명드리겠습니다.
nohup
nohup은 no hang up의 줄임 말입니다. “끊지 않는다”는 의미가 직접적으로 담겨있습니다. 예를 들어, 리눅스에서 “Hello World”라는 문자열을 출력하는 쉘 스크립트 hello.sh
파일을 실행한다고 하면 아래와 같이 사용합니다.
nohup ./hello.sh
기본적으로 nohup으로 실행한 결과는 nohup.out
파일에 저장됩니다.
cat nohup.out
Hello World
쉘 스크립트가 아닌 리눅스 명령어를 nohup으로 실행할 수도 있습니다.
nohup ping google.com
백그라운드 실행 (&)
nohup과 비슷해 보이기도 하고, 함께 자주 쓰기도 하는 명령어로는 &가 있습니다. &를 붙여서 프로세스를 실행하면 해당 프로세스는 포그라운드가 아닌 백그라운드로 실행됩니다.
리눅스에서 포그라운드와 백그라운드를 쉽게 말하면, 포그라운드로 실행한 프로세스는 실행 후 엔터를 치는 순간 종료되어 버리지만, 백그라운드로 실행하면 엔터를 쳐도 프로세스가 끊기지 않고 실행됩니다.
결론적으로 둘의 차이는 nohup은 터미널과 세션이 끊겨도 프로세스가 종료되지 않습니다. &은 백그라운드로 프로세스를 실행하지만 터미널과 세션이 끊기면 프로세스가 종료됩니다.
때문에 터미널과 세션이 끊겨도 프로세스가 종료되지 않으면서, 백그라운드로 프로세스를 실행하고 싶을 때 두 명령어를 함께 사용합니다.
nohup ping google.com &
정리하자면, nohup과 &은 프로세스가 세션이 끊긴 뒤에도, 백그라운드에서 실행 상태가 유지되길 바랄 때 사용합니다. 예를 들어, 자바 프로그램을 실행하는 sh 파일이 있다면 실행 시 nohup과 &를 사용해 스크립트를 짰을 가능성이 있습니다. 만약 사용을 원치 않으면 해당 부분의 스크립트를 수정하면 됩니다.
'운영체제(OS)' 카테고리의 다른 글
리눅스 mv 명령어 사용 방법 (파일 이동) (0) | 2022.09.05 |
---|---|
윈도우 성능 모니터 사용 방법 (CPU 사용 추이 분석) (0) | 2022.09.02 |
메모리와 스토리지 차이 (RAM vs SSD) (0) | 2022.08.31 |
윈도우 드라이버 패키지란? (sys, inf, cat) (0) | 2022.08.28 |
윈도우, 블루스크린(BSOD)이란? (해결 방법) (0) | 2022.08.22 |