728x90
반응형
nohup과 &은 프로세스를 백그라운드에서 실행하는 데 사용되지만, 몇 가지 차이점이 있습니다.
- 프로세스 분리:
- nohup: 프로세스를 독립적으로 실행하며, 터미널 세션이 종료되어도 계속 실행됩니다. 표준 입출력은 nohup.out 파일에 리다이렉트됩니다.
- &: 프로세스를 백그라운드에서 실행하지만, 터미널 세션이 종료되면 프로세스도 종료될 수 있습니다.
- 출력 관리:
- nohup: 표준 출력 및 표준 에러를 파일로 리다이렉트하므로, 백그라운드에서 실행 중인 프로세스의 출력을 파일로 저장할 수 있습니다.
- &: 출력은 터미널에 표시되거나, 필요한 경우 리다이렉트할 수 있지만, 기본적으로는 터미널에 출력됩니다.
- 프로세스 그룹:
- nohup: 프로세스는 새로운 프로세스 그룹을 형성하며, 터미널과는 독립적으로 관리됩니다.
- &: 프로세스는 기존 프로세스 그룹에 속하며, 터미널과의 연관이 있을 수 있습니다.
사용 시나리오에 따라 적절한 옵션을 선택하면 됩니다. nohup은 장기 실행이 필요한 작업에 유용하며, &는 일시적인 작업에 사용될 수 있습니다.
- nohup 명령어 사용법
옵션 | 설명 | 예제 |
-c | 명령어를 실행하고 종료 전에 명령어를 추가 실행 | nohup -c "command1; command2" & |
-f | nohup.out 파일에 출력을 추가 | nohup -f command & |
-p | 특정 프로세스 그룹 ID를 지정 | nohup -p process_group_id command & |
-l | 로깅을 nohup.out 대신 파일에 기록 | nohup -l output.log command & |
-o | 표준 출력을 지정된 파일로 리다이렉션 | nohup -o output.txt command & |
-e | 표준 에러를 지정된 파일로 리다이렉션 | nohup -e error.txt command & |
-append | 출력 파일에 내용을 추가 | nohup -o output.txt -append command & |
-s | 실행 중인 프로세스에 SIGHUP 신호를 보내지 않음 | nohup -s command & |
-bg | 프로세스를 백그라운드로 실행 (동의어) | nohup -bg command & |
-- | 옵션의 끝을 나타냄 | nohup -- -c "command with leading dash" & |
- nohup 과 & 가 같이 사용하는 이유는 터미널 세션 종료 시에도 프로세스가 계속 실행되도록 하기 위함입니다.
- & (백그라운드 실행): 이 옵션은 명령어를 백그라운드에서 실행하도록 합니다. 터미널에서 프로세스를 실행한 후에도 다른 명령어를 입력할 수 있게 해줍니다.
- nohup: 이 명령어는 터미널 세션 종료 후에도 프로세스를 계속 실행하도록 합니다. 또한, nohup.out 파일에 표준 출력과 표준 에러를 리다이렉트하여 기록합니다.
nohup만 사용하면 터미널 세션이 종료되면 백그라운드에서 실행 중인 프로세스도 종료될 수 있습니다. 그러나 &를 추가하면 해당 프로세스가 터미널 세션과 독립적으로 계속 실행되도록 보장합니다.
예를 들어, 다음 명령어는 터미널에서 실행 중인 프로세스를 백그라운드에서 실행하고, 터미널 세션 종료 후에도 계속 실행되도록 합니다:
728x90
반응형
LIST
'Linux' 카테고리의 다른 글
[Linux] 리눅스에서 <,> 표준 입력,출력 리디렉션 명령어 사용법 (1) | 2024.04.29 |
---|---|
[Linux] envsubst 명령어 사용 방법 (환경 변수 치환) (1) | 2024.04.25 |
[Linux] disk format, mount 방법 (ext4, ntfs, xfs) (2) | 2024.01.26 |
[Linux] ldd 명령어 다양한 옵션과 사용 예시 (1) | 2024.01.17 |
[Linux] NFS 볼륨 조회 명령 (2) | 2024.01.15 |