쉘스크립트를 짜서 실행시킨 후, 쉘스크립트를 탈출해도 서비스가 계속 호출 및 응답을 받을 수 있게 하고 싶었다.
# nohup 명령어
nohup은 "no hangups" 라는 의미로 Linux, Unix 계열의 OS에서 쉘스크립트파일 (*.sh)를 데몬 형태로 실행시키는 프로그램이다.
- - 터미널 세션이 끊겨도 실행을 멈추지 않고 동작하도록 함
- - 별도의 옵션을 설정하지 않았다면, nohup으로 프로그램을 실행 시 출력되는 메세지들을 nohup.out이라는 파일에 저장한다.
*nohup으로 실행할 쉘 스크립트의 퍼미션 상태는 755 이상이어야 한다.
- - 리눅스는 기본적으로 터미널 세션 로그아웃이 발생하면, 해당 터미널에서 실행한 프로세스들에게 "HUP signal"을 전달하여 종료시킨다. nohup 명령어는 이러한 HUP signal을 무시하도록 하는 명령어이기 때문에 터미널이 종료가 되어도 프로그램이 계속 실행될 수 있는 것이다.
# nohup과 &의 차이점
-터미널이 종료된 후에도 프로그램이 종료되느냐 아니냐
- & (백그라운드): 백그라운드로 동작하므로 터미널이 끊기면 &로 실행하는 프로세스도 같이 종료된다.
- nohup : nohup으로 프로그램을 실행시키면 터미널이 종료되어도 프로그램이 종료가 되지 않음.
# nohup 명령어 사용방법
1) 기본적인 사용방법
nohup [process or shell script 파일] &
[process or shell script] : nohup으로 실행할 프로그램이나 쉘 스크립트를 기입
& : nohup으로 실행한 파일을 백그라운드로 돌림
2) 표준 출력과 표준 에러를 따로 저장할 경우
nohup [process or shell script 파일] 1 > "stdout" 2 > "stderr" &
[process or shell script] : nohup으로 실행할 프로그램이나 쉘 스크립트를 기입
1 > "stdout" : 프로세스에 의해 생성되는 표준 출력을 "stdout" 이라는 파일에 리다이렉션 함
2 > "stderr" : 프로세스에 의해 생성되는 표준 에러를 "stderr"이라는 파일에 리다이렉션 함
3) 로그 파일을 남기지 않을 경우
nohup [process or shell script 파일] 1 > /dev/null 2 > &1 &
'OS > Linux&Unix' 카테고리의 다른 글
[Linux/Unix] 2>&1 이해하기 (0) | 2022.12.22 |
---|---|
[Linux/Unix] AIX - machine 전체 CPU 및 Core 수 확인 (0) | 2022.12.22 |
[Linux/Unix] grep 명령어 / -H, -v, -i, -E, -W (0) | 2022.12.02 |
[Linux/Unix] AIX ftp 서비스 확인 명령어 (0) | 2022.12.02 |
[Linux/Unix] .bashrc / .bash_profile / .profile ? (0) | 2022.12.01 |