imhamburger 님의 블로그

리눅스(Linux) - nohup과 '&' 개념과 사용법 본문

리눅스(Linux)

리눅스(Linux) - nohup과 '&' 개념과 사용법

imhamburger 2024. 7. 17. 19:49

nohup은 'no hangups'라는 의미로 영어에서 전화를 끊을 때 끊는다고 표현할 때 'hangup'이라는 단어를 사용하는데 'no hangup'은 '끊지 않는다.'라고 해석할 수 있다. 

nohup을 쓰면 쉘스크립트 파일(*.sh)을 데몬 형태로 실행시킬 수 있다. 따라서 터미널을 종료해도 명령어로 중단을 외치기 전까지 해당 파일이 실행된다. 가끔 오랜 시간이 걸리는 스크립트를 사용할 때 좋다.

참고로 nohup을 사용하면 nohup.out 이라는 파일이 생성되는데 여기에 실행된 파일의 로그(기록)가 담긴다.

 

데몬(Daemon)이란?

눈에 보이지 않지만 열심히 일하고 있는 형태를 리눅스에서 데몬이라고 부른다. 

 

여기서 주의사항은 nohup으로 실행할 파일의 permission이 755 이상이여야 작동한다.

permission에 관련해서 이해가 가지 않는다면 바로가기 를 눌러 참고하자. 755로 바꾸는 방법은 간단하다.

chmod 755 {스크립트 파일명}

 

그리고 nohup이랑 같이 많이 쓰이는 것이 있는데 바로 '&' 이다.

'&'은 명령들을 백그라운드에서 실행할 수 있게 해주는 것인데 nohup과 &를 같이썼을 때 의미를 해석하자면 'nohup 명령을 백그라운드(&)에서 실행하겠다.' 라는 의미이다.

 

사용법은 간단하다.

nohup {스크립트 파일명} #nohup만 쓸 때
{스크립트 파일명} & #&만 쓸 때
nohup {스크립트 파일명} & #둘 다 쓸 때

 

만약, 실행파일A의 로그를 B.log에 담고싶다면, 아래와 같이 명령할 수 있다.

$ nohup ./{파일명A} > {파일명B}.log &

 

'nohup'과 '&'가 많이 헷갈리는 데 아래 표를 보면 차이점을 알 수 있다.

명령 Ctrl + C 터미널 종료
nohup [command] 명령이 중단됨 명령이 중단되지 않음
[command] & 명령이 중단되지 않음 명령이 중단됨
nohup [command] & 명령이 중단되지 않음 명령이 중단되지 않음

 

 

*끄적끄적

history | cut -d' ' -f4- | sort | uniq
#history를 | 공백은 자르고 4번째 필드부터 끝까지 | 정렬하고 | 유니크한 값만 추출하겠다.