Linux 작업 포어그라운딩

LinuxBeginner
지금 연습하기

소개

Linux 운영 체제에서 멀티태스킹은 사용자가 여러 프로세스를 동시에 실행할 수 있게 해주는 필수적인 기능입니다. Linux 터미널의 강력한 기능 중 하나는 작업 제어 (job control) 로, 백그라운드에서 프로세스를 실행하고 필요할 때 포어그라운드로 가져오는 기능입니다.

이 랩에서는 Linux 작업 제어에 대해 소개하며, 특히 백그라운드 작업을 포어그라운드로 가져오는 프로세스에 중점을 둡니다. 백그라운드에서 작업을 시작하고, 실행 중인 작업을 나열하며, fg 명령을 사용하여 특정 작업을 포어그라운드로 가져오는 방법을 배우게 됩니다. 이러한 기술은 Linux 환경에서 장시간 실행되는 작업을 처리할 때 생산성을 향상시키는 데 유용합니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 100%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

백그라운드 작업 생성 및 실행

이 단계에서는 장시간 실행되는 작업을 시뮬레이션하는 스크립트를 생성하고 백그라운드에서 실행하는 방법을 배우게 됩니다.

포어그라운드 (Foreground) vs 백그라운드 (Background) 프로세스 이해

Linux 터미널에서 프로세스는 포어그라운드 또는 백그라운드에서 실행될 수 있습니다.

  • 포어그라운드 프로세스: 명령이 포어그라운드에서 실행되면 완료될 때까지 터미널을 점유합니다. 완료될 때까지 다른 명령을 실행할 수 없습니다.
  • 백그라운드 프로세스: 명령이 백그라운드에서 실행되면 터미널이 다른 작업을 위해 자유롭게 유지되는 동안 "배후에서" 실행됩니다.

먼저 프로젝트 디렉토리로 이동해 보겠습니다.

cd ~/project

이제 장시간 실행되는 작업을 시뮬레이션하는 간단한 스크립트를 생성해 보겠습니다. 이를 사용하여 백그라운드 및 포어그라운드 작업을 시연할 것입니다.

nano long_running_task.sh

nano 편집기에서 다음 코드를 입력합니다.

#!/bin/bash
echo "Starting a long task..."
sleep 60 ## This will pause for 60 seconds
echo "Task completed."

파일을 저장하려면 Ctrl+O를 누른 다음 Enter를 누르고, Ctrl+X를 눌러 nano 를 종료합니다.

다음으로, 다음 명령을 사용하여 스크립트를 실행 가능하게 만듭니다.

chmod +x long_running_task.sh

명령 끝에 앰퍼샌드 (&) 를 추가하여 이 스크립트를 백그라운드에서 실행해 보겠습니다.

./long_running_task.sh &

다음과 유사한 출력을 볼 수 있습니다.

[1] 1234
Starting a long task...

대괄호 안의 숫자 [1]은 작업 번호이고, 그 뒤의 숫자 (이 예에서는 1234) 는 프로세스 ID(Process ID, PID) 입니다. 이제 스크립트가 백그라운드에서 계속 실행되는 동안 터미널에서 다른 명령을 입력할 수 있습니다.

여러 백그라운드 작업 관리

이 단계에서는 여러 백그라운드 작업을 시작하고 상태를 확인하는 방법을 배우게 됩니다.

먼저, 스크립트의 다른 인스턴스를 백그라운드에서 시작해 보겠습니다.

./long_running_task.sh &

"Starting a long task..." 메시지와 함께 다른 작업 번호와 프로세스 ID 가 표시되어야 합니다.

백그라운드 작업 확인

백그라운드에서 실행 중인 모든 작업 목록을 보려면 jobs 명령을 사용합니다.

jobs

출력은 다음과 유사해야 합니다.

[1]-  Running                 ./long_running_task.sh &
[2]+  Running                 ./long_running_task.sh &

이것은 다음을 보여줍니다.

  • 대괄호 안의 작업 번호 [1][2]
  • 각 작업의 상태 (Running)
  • 실행된 명령
  • + 기호는 "현재" 작업 (가장 최근에 시작되거나 사용된 작업) 을 나타냅니다.
  • - 기호는 현재 작업이 완료되면 현재 작업이 될 작업을 나타냅니다.

세 번째 백그라운드 작업을 시작해 보겠습니다.

./long_running_task.sh &

다시 작업 목록을 확인합니다.

jobs

이제 목록에 세 개의 실행 중인 작업이 표시되어야 합니다.

작업을 Foreground 로 가져오기

이 단계에서는 fg 명령을 사용하여 백그라운드 작업을 포어그라운드로 가져오는 방법을 배우게 됩니다.

fg 명령 사용

fg 명령은 백그라운드 작업을 포어그라운드로 가져와 터미널에서 활성 프로세스로 만듭니다. 작업이 포어그라운드에 있으면 키보드에서 입력을 받을 수 있으며, 해당 출력은 터미널에 직접 표시됩니다.

가장 최근의 백그라운드 작업 (jobs 출력에서 +로 표시됨) 을 포어그라운드로 가져오려면 다음을 입력하십시오.

fg

명령이 포어그라운드에서 실행되는 것을 볼 수 있으며, 명령이 완료될 때까지 터미널이 점유됩니다. 출력은 다음과 같습니다.

./long_running_task.sh

그리고 작업이 아직 실행 중인 경우 완료될 때까지 기다려야 합니다. 완료되면 다음을 볼 수 있습니다.

Task completed.

완료되기 전에 포어그라운드 프로세스를 중단해야 하는 경우 Ctrl+C를 누르십시오.

다른 백그라운드 작업을 시작해 보겠습니다.

./long_running_task.sh &

이제 작업 목록을 확인합니다.

jobs

특정 작업 Foreground 로 가져오기

이 단계에서는 작업 번호를 사용하여 특정 백그라운드 작업을 포어그라운드로 가져오는 방법을 배우게 됩니다.

작업 번호와 함께 fg 사용

여러 백그라운드 작업이 있는 경우, fg 명령과 함께 작업 번호를 참조하여 특정 작업을 포어그라운드로 가져올 수 있습니다.

먼저, 여러 작업이 실행 중인지 확인해 보겠습니다. 몇 개의 새로운 백그라운드 작업을 시작합니다.

./long_running_task.sh &
./long_running_task.sh &

작업 목록과 해당 번호를 확인합니다.

jobs

특정 작업을 포어그라운드로 가져오려면 fg %jobnumber 형식을 사용합니다. 예를 들어, 작업 번호 1 을 포어그라운드로 가져오려면 다음과 같이 합니다.

fg %1

출력은 포어그라운드에서 실행 중인 명령을 표시합니다.

./long_running_task.sh

작업이 완료될 때까지 기다리거나 Ctrl+C를 눌러 중단합니다.

이제 다른 작업을 포어그라운드로 가져와 보십시오. 예를 들어, 번호 2 의 작업이 있는 경우:

fg %2

이 기술은 여러 작업 간에 전환해야 할 때, 필요에 따라 특정 프로세스에 주의를 기울여야 할 때 유용합니다.

요약

이 랩에서는 Linux 환경에서 프로세스를 관리하기 위한 필수 기술을 배웠습니다.

  1. 백그라운드 작업 생성 및 실행: 장시간 실행되는 작업을 시뮬레이션하는 스크립트를 만들고 & 기호를 사용하여 백그라운드에서 실행하는 방법을 배웠습니다.

  2. 여러 백그라운드 작업 관리: jobs 명령을 사용하여 여러 백그라운드 작업을 시작하고 상태를 확인하는 방법을 배웠습니다.

  3. 작업을 포어그라운드로 가져오기: fg 명령을 사용하여 백그라운드 작업을 포어그라운드로 가져오는 방법을 배웠습니다. 가장 최근 작업 또는 작업 번호를 참조하여 특정 작업을 가져올 수 있습니다.

이러한 작업 제어 기술은 Linux 에서 효율적인 멀티태스킹을 위한 기본입니다. 이를 통해 다음을 수행할 수 있습니다.

  • 터미널을 묶어두지 않고 시간 소모적인 프로세스를 실행합니다.
  • 여러 작업을 동시에 모니터링합니다.
  • 필요에 따라 작업 간에 전환합니다.
  • 워크플로우를 보다 효과적으로 관리합니다.

Linux 시스템으로 계속 작업하면서 이러한 명령은 특히 서버 작업, 스크립트 실행 또는 여러 프로세스 관리 시 일상적인 작업에서 유용한 도구가 될 것입니다.