백그라운드 잡의 입력과 출력
리눅스에서 백그라운드 잡(background job)을 실행할 때, 입력과 출력을 처리하는 방법을 이해하는 것이 중요합니다. 백그라운드 잡은 사용자와 직접적인 상호 작용 없이 백그라운드에서 명령을 실행합니다.
입력 처리
백그라운드 잡은 표준 입력(standard input, stdin)으로부터 데이터를 직접 받지 못합니다. 대신, 터미널에서 분리되어 실행되므로, 표준 입력을 다른 소스에서 받거나, 입력이 필요하지 않은 작업으로 설정해야 합니다. 예를 들어, 입력을 파일에서 받도록 리다이렉트 할 수 있습니다.
command < input_file &
출력 처리
백그라운드 잡의 표준 출력(standard output, stdout)과 표준 에러(standard error, stderr)는 기본적으로 여전히 터미널에 출력됩니다. 이는 로그 메시지나 결과를 파일로 리다이렉트하여 관리할 수 있음을 의미합니다.
command > output_file 2> error_file &
여기서 >
는 표준 출력을 output_file
로 리다이렉트하고, 2>
는 표준 에러를 error_file
로 리다이렉트합니다.
백그라운드 잡의 제어
백그라운드 잡은 jobs
명령어를 사용하여 관리할 수 있으며, fg
명령어로 포그라운드로 가져올 수 있습니다. kill
명령어를 사용하여 백그라운드 잡을 종료할 수도 있습니다.
예제
- 백그라운드에서 파일 다운로드하기 명령은
wget
을 사용하여 파일을 다운로드하고, 모든 출력을download.log
파일로 리다이렉트 합니다. wget -q http://example.com/largefile.zip > download.log 2>&1 &
- 파이썬 스크립트를 백그라운드에서 실행하기 명령은 파이썬 스크립트를 백그라운드에서 실행하고, 표준 출력과 에러를 각각
output.log
와error.log
에 저장합니다. python script.py > output.log 2> error.log &
정리
백그라운드 잡을 실행할 때는 입력과 출력을 적절히 관리하는 것이 중요합니다. 입력은 일반적으로 리다이렉트를 통해 파일이나 다른 소스에서 받아야 하며, 출력은 로그 파일로 리다이렉트 하여 터미널과 분리시킬 수 있습니다. 이를 통해 백그라운드 프로세스의 관리가 용이해지고, 시스템 리소스의 효율적 사용이 가능해집니다.
'Linuxpia > 리눅스 사용 팁' 카테고리의 다른 글
[리눅스 팁] 프로그램 편집기를 종료하지 않고 테스트하는 방법 (37) | 2024.05.11 |
---|---|
글도 정렬할 수 있는 sort (40) | 2024.05.09 |
[리눅스 팁] 명령을 백그라운드에서 실행하려면 (65) | 2024.05.01 |
xargs 를 이용한 명령어 사용법 (67) | 2024.04.30 |
SSH (Secure Shell)를 사용하여 원격 서버에서 문자열을 명령으로 실행 (67) | 2024.04.29 |