Linuxpia/리눅스 사용 팁

[리눅스 팁] 백그라운드 job의 입력과 출력

Linuxpia4U 2024. 5. 6. 05:30
반응형

백그라운드 잡의 입력과 출력

리눅스에서 백그라운드 잡(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 명령어를 사용하여 백그라운드 잡을 종료할 수도 있습니다.

예제

  1. 백그라운드에서 파일 다운로드하기 명령은 wget을 사용하여 파일을 다운로드하고, 모든 출력을 download.log 파일로 리다이렉트 합니다.
  2. wget -q http://example.com/largefile.zip > download.log 2>&1 &
  3. 파이썬 스크립트를 백그라운드에서 실행하기 명령은 파이썬 스크립트를 백그라운드에서 실행하고, 표준 출력과 에러를 각각 output.logerror.log에 저장합니다.
  4. python script.py > output.log 2> error.log &

caption: 사전 파일을 소트하여 상위 10줄 백그라운드 출력

정리

백그라운드 잡을 실행할 때는 입력과 출력을 적절히 관리하는 것이 중요합니다. 입력은 일반적으로 리다이렉트를 통해 파일이나 다른 소스에서 받아야 하며, 출력은 로그 파일로 리다이렉트 하여 터미널과 분리시킬 수 있습니다. 이를 통해 백그라운드 프로세스의 관리가 용이해지고, 시스템 리소스의 효율적 사용이 가능해집니다.

반응형