59doit
Linux 프로세스 관리 nohup 본문
| nohup 세션이 끊겨도 계속 실행
nohup 명령어는 로그아웃 등과 같이 터미널과의 세션 연결이 끊기더라도 프로세스가 계속 동작되도록 해준다.
일반적으로 터미널과의 세션 연결이 끊기게 되면 리눅스에서는 해당 세션에서 실행된 프로세스들에게 HUP(Hang Up,끊다) 시그널을 전달하여 프로세스들이 종료되도록 한다. 이 때, nohup 명령은 “세션이 종료되더라도 계속 실행하게 하고 싶은 프로세스에는 HUP 시그널을 전달하지 않도록(No Hang Up,끊지마) 한다"는 의미이다.
nohup [command]
- 파일압축하기
zip test.sip ./*
→ 특정 디렉토리에 모든 파일(./*)를 test.zip으로 압축한다.
- 파일 및 디렉토리 압축하기
zip -r test.zip ./*
→ 현재 폴더에 여러 하위 폴더가 있는데, 그것도 다 같이 압축하기 위해서는 -r 이라는 옵션을 추가한다.
nohup 명령의 표준 출력을 다른 파일에 쓰기
nohup ./test.sh > nohup_test.out
→ 표준 출력을 다른 파일에 쓰기 위에서는 리다이렉션(>, >>)을 사용하면 된다
nohup ./test.sh > /dev/null
→ 표준 출력을 쓰고 싶지 않을때
표준 출력과 에러출력
- 0 : 표준 입력
- 1 : 표준 출력
- 2 : 표준 에러
- 표준출력과 표준 에러출력을 다른 파일에 쓰기
nohup ./test.sh 1 > test.out 2 > test.err
→ 표준 출력(1)은 test.out 파일로 리다이렉션
표준 에러(2)는 test.err 파일로 리다이렉션 하겠다
- 표준출력과 표준 에러출력을 같은 파일에 쓰기
nohup ./test.sh > test.log 2>&1 &
→ 표준 출력을 test.log에 쓰고, 표준 에러(2)도 표준 출력(1)이 쓰여지는 파일에 리다이렉션 하겠다
nohup 명령을 백그라운드로 실행
% ./test.sh &
→ &를 사용하면 프로그램이 백그라운드로 실행이 되게 된다.
% nohup nohup ./test.sh > /dev/null &
→ 백그라운드(&) 실행은 실행 시키면 대기 상태가 없지만, 세션 연결이 끊기면 실행한 프로그램도 함께 종료된다. 하지만 nohup 명령을 백그라운드(&)로 같이 실행시키게 되면, 대기 상태도 없고 세션 연결이 끊기더라도 프로세스의 종료 없이 백그라운드로 실행되게 된다.
명령 | Ctrl + C | 터미널 종료 |
[command] | 명령이 중단됨 | 명령이 중단됨 |
[command]& | 명령이 중단되지 않음 | 명령이 중단됨 |
nohup [command] | 명령이 중단됨 | 명령이 중단되지 않음 |
nohup [command] & | 명령이 중단되지 않음 | 명령이 중단되지 않음 |
프로세스 종료
먼저 프로세스 PID조회
ps -ef | grep test.sh
PID 아이디를 kil 명력으로 종료
kill 6133
'Linux' 카테고리의 다른 글
Linux 프로세스 관리 uptime (2) | 2023.03.01 |
---|---|
Linux 프로세스 관리 top (3) | 2023.02.28 |
Linux 프로세스 관리 kill (0) | 2023.02.27 |
Linux 프로세스 관리 ps (4) | 2023.02.26 |
Linux 네트워크 curl (0) | 2023.02.24 |