백그라운드 작업 관리

LinuxBeginner
지금 연습하기

소개

이 랩에서는 다양한 명령어를 사용하여 Linux 에서 백그라운드 작업을 관리하는 방법을 배우게 됩니다. 백그라운드에서 프로세스를 실행하고, 상태를 모니터링하며, 제어하는 방법을 익히게 됩니다. 이 지식은 Linux 환경에서 효율적인 멀티태스킹에 필수적이며, 터미널을 점유하지 않고 여러 작업을 동시에 실행할 수 있도록 해줍니다.

성과

이 랩을 마치면 다음을 수행할 수 있습니다.

  • & 연산자를 사용하여 명령어를 백그라운드에서 실행합니다.
  • jobs 명령어를 사용하여 백그라운드 작업을 나열하고 모니터링합니다.
  • fg 명령어를 사용하여 백그라운드 작업을 포어그라운드로 가져옵니다.
  • kill 명령어를 사용하여 백그라운드 작업을 중지합니다.
  • 백그라운드 작업의 터미널 특정적인 특성을 이해합니다.
이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 92%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

백그라운드에서 명령어 실행

백그라운드에서 간단한 명령어를 실행하는 것으로 시작해 보겠습니다.

  1. 터미널을 엽니다. /home/labex/project 디렉토리에 있어야 합니다. 그렇지 않은 경우, 다음을 입력하여 이 디렉토리로 변경할 수 있습니다.

    cd /home/labex/project
  2. 장시간 실행되는 프로세스를 시뮬레이션하기 위해 sleep 명령어를 사용합니다. 다음 명령어를 실행합니다.

    sleep 600 &

    sleep 명령어는 지정된 시간 (초) 동안 일시 중지됩니다 (이 경우 600 초 또는 10 분). 끝에 있는 &는 Linux 에게 이 명령어를 백그라운드에서 실행하도록 지시합니다.

  3. 이 명령어를 실행한 후 다음과 유사한 출력을 보게 됩니다.

    [1] 1234

    이 출력은 두 가지 중요한 정보를 보여줍니다.

    • [1]은 작업 번호입니다. 이 번호는 이 특정 백그라운드 작업을 참조하는 데 사용됩니다.
    • 1234는 프로세스 ID (PID) 입니다. 이것은 실행 중인 프로세스에 대한 고유 식별자입니다.
  4. 명령 프롬프트가 즉시 다시 나타나는 것을 알 수 있습니다. 이는 프로세스가 백그라운드에서 실행되고 있어 터미널을 계속 사용할 수 있기 때문입니다.

  5. 이제 백그라운드 작업의 상태를 확인해 보겠습니다.

    jobs

    이 명령어는 현재 백그라운드 작업을 모두 나열합니다. 다음과 같은 출력을 볼 수 있습니다.

    [1]+  Running                 sleep 600 &

    이는 작업 번호 1 이 실행 중이며, 방금 시작한 sleep 600 명령어임을 알려줍니다.

  6. 중요 참고 사항: 백그라운드 작업은 시작된 터미널 세션에 특정됩니다. 새 터미널 창이나 탭을 열면, 거기에서 jobs를 실행해도 원래 터미널의 백그라운드 작업이 표시되지 않습니다. 이는 Linux 에서 백그라운드 작업이 작동하는 방식을 이해하는 데 중요한 개념입니다.

여러 백그라운드 작업 실행

이제 백그라운드에서 하나의 작업을 실행했으므로, 여러 작업을 동시에 실행해 보겠습니다. 다양한 명령어를 혼합하여 백그라운드 작업의 다재다능함을 보여드리겠습니다.

  1. 몇 개의 백그라운드 작업을 더 시작해 보겠습니다. 다음 명령어를 차례대로 입력합니다.

    ping -c 100 google.com > ping_results.txt &
    find /home -name "*.log" > log_files.txt &
    sleep 1200 &

    각 명령어는 새로운 백그라운드 작업을 시작합니다. 각 작업에 대한 작업 번호와 PID 를 보게 됩니다.

  2. 이제 모든 백그라운드 작업의 상태를 확인해 보겠습니다.

    jobs

    4 개의 모든 작업 (1 단계의 작업 포함) 을 나열하는 출력을 볼 수 있습니다.

    [1]   Running                 sleep 600 &
    [2]   Running                 ping -c 100 google.com > ping_results.txt &
    [3]-  Running                 find /home -name "*.log" > log_files.txt &
    [4]+  Running                 sleep 1200 &

    작업 4 옆의 +는 이 작업이 가장 최근에 시작된 백그라운드 작업임을 나타냅니다. 작업 3 옆의 -는 작업 4 가 완료되면 이 작업이 현재 작업이 될 것임을 나타냅니다.

  3. 여러 백그라운드 작업을 빠르게 시작할 수 있으며, 터미널은 다른 명령에 대해 응답성을 유지하는 것을 확인하십시오.

백그라운드 작업을 포어그라운드로 가져오기

때로는 백그라운드 작업을 포어그라운드로 가져와서 상호 작용하거나 출력을 확인해야 할 수 있습니다. 이를 수행하는 방법을 알아보겠습니다.

  1. 먼저, 현재 작업을 나열합니다.

    jobs

    이렇게 하면 현재 백그라운드에서 실행 중인 내용에 대한 보기가 새로 고쳐집니다.

  2. 장시간 실행되는 작업 중 하나를 포어그라운드로 가져오겠습니다. 목록에서 작업 번호를 선택합니다 (예: 작업 번호 3 이라고 가정하지만, 목록에서 여전히 실행 중인 작업에 해당하는 번호를 사용하십시오). 포어그라운드로 가져오려면 fg 명령어를 사용하고 작업 번호를 입력합니다.

    fg %3

    %3은 작업 번호를 나타냅니다. % 기호는 셸에게 프로세스 ID 가 아닌 작업 번호를 참조하고 있음을 알려줍니다.

  3. 이 명령어를 실행한 후, 명령어가 포어그라운드에서 실행되는 것을 볼 수 있으며, 터미널은 완료되거나 중지할 때까지 "멈춰"있게 됩니다.

  4. 작업을 중지하고 터미널의 제어를 되찾으려면 Ctrl+C를 누릅니다. 이렇게 하면 현재 포어그라운드 프로세스에 인터럽트 신호가 전송됩니다.

  5. 작업을 다시 확인해 보겠습니다.

    jobs

    포어그라운드로 가져온 작업이 중지되었으므로 더 이상 나열되지 않는 것을 볼 수 있습니다.

백그라운드 작업 중지

이제 백그라운드 작업을 포어그라운드로 가져오지 않고 중지하는 방법을 알아보겠습니다.

  1. 먼저, 현재 작업을 나열합니다.

    jobs

    이렇게 하면 어떤 작업이 여전히 실행 중인지 확인할 수 있습니다.

  2. 남아있는 백그라운드 작업 중 하나를 중지하겠습니다. 목록에서 작업 번호를 선택합니다 (예: 작업 번호 2 라고 가정하지만, 목록에서 여전히 실행 중인 작업에 해당하는 번호를 사용하십시오). 이를 중지하려면 kill 명령어를 사용하고 작업 번호를 입력합니다.

    kill %2

    %2는 선택한 작업 번호를 나타냅니다. 다시 말하지만, % 기호는 작업 번호를 참조하고 있음을 나타냅니다.

  3. kill 명령어는 지정된 작업에 종료 신호를 보냅니다. 기본적으로 프로세스가 정상적으로 종료될 수 있도록 하는 신호를 보냅니다.

  4. 작업을 다시 확인합니다.

    jobs

    종료한 작업이 더 이상 나열되지 않는 것을 볼 수 있습니다. 이는 작업이 성공적으로 종료되었음을 확인합니다.

다른 명령어와 함께 백그라운드 작업 사용하기

이제 다양한 명령어를 연습했으니, 다른 실용적인 명령어와 함께 백그라운드 작업을 사용해 보겠습니다.

  1. tar 명령어를 사용하여 홈 디렉토리의 압축 아카이브를 백그라운드에서 생성합니다.

    tar -czf home_backup.tar.gz /home/labex &

    이 명령어는 홈 디렉토리의 압축된 tar 아카이브를 생성합니다.

  2. 이전 명령어와 마찬가지로 작업 번호와 PID 를 볼 수 있습니다.

  3. 작업 상태를 확인합니다.

    jobs

    실행 중인 작업으로 tar 명령어가 나열되어야 합니다.

  4. 실행 중인 동안 다른 작업을 위해 터미널을 계속 사용할 수 있습니다. 이것이 백그라운드 작업의 강력함입니다!

  5. 잠시 후, 명령어가 완료되었는지 확인합니다.

    jobs

    더 이상 나열되지 않으면 완료된 것입니다.

  6. 이제 아카이브가 생성되었는지 확인해 보겠습니다.

    ls -l home_backup.tar.gz

    성공적으로 생성된 경우 아카이브 파일의 세부 정보를 표시합니다.

요약

이 랩에서는 Linux 에서 백그라운드 작업을 관리하기 위한 필수 기술을 배웠습니다.

  1. & 연산자를 사용하여 백그라운드에서 명령 실행
  2. jobs 명령어를 사용하여 백그라운드 작업 나열 및 모니터링
  3. fg를 사용하여 백그라운드 작업을 포어그라운드로 가져오기
  4. kill을 사용하여 백그라운드 작업 중지
  5. 네트워크 진단, 파일 검색, 아카이브 생성과 같은 실용적인 시나리오에 이러한 개념 적용

또한 중요한 개념을 배웠습니다. 백그라운드 작업은 시작된 터미널 세션에 특정됩니다. 즉, 각 터미널 창 또는 탭은 자체 백그라운드 작업 집합을 유지합니다.

이러한 기술은 Linux 환경에서 효율적으로 멀티태스킹을 수행하는 데 도움이 되며, 여러 프로세스를 동시에 실행하고 효과적으로 관리할 수 있습니다. 백그라운드 작업은 지속적인 상호 작용이 필요하지 않은 장기 실행 작업에 특히 유용하며, 다른 작업을 위해 터미널을 자유롭게 사용할 수 있도록 합니다.