11. 작업 제어

Linux 에서는 완료하는 데 시간이 오래 걸리는 명령을 자주 접하게 됩니다. 기다리면서 터미널을 사용하지 못하게 두는 대신, **Linux 작업 제어 (Job Control)**를 사용하여 이러한 작업을 관리할 수 있습니다. 이 강력한 기능을 사용하면 단일 셸 세션 내에서 여러 백그라운드 프로세스를 실행하고 관리하여 워크플로우를 크게 개선할 수 있습니다.

명령을 백그라운드에서 실행하기

프로세스를 백그라운드에서 직접 시작하려면 명령 끝에 앰퍼샌드 (&) 를 추가하기만 하면 됩니다. 이렇게 하면 셸 프롬프트가 즉시 반환되어 명령이 실행되는 동안 계속 작업할 수 있습니다.

sleep 1000 &
sleep 1001 &
sleep 1002 &

백그라운드 작업 나열하기

jobs 명령을 사용하여 백그라운드에서 실행 중인 모든 작업을 볼 수 있습니다.

$ jobs

[1]    Running     sleep 1000 &
[2]-   Running     sleep 1001 &
[3]+   Running     sleep 1002 &

출력에는 첫 번째 열에 작업 ID, 상태 및 원래 명령이 제공됩니다. + 기호는 가장 최근에 시작된 백그라운드 작업을 나타내고, - 기호는 두 번째로 최근 작업을 표시합니다.

활성 프로세스 관리하기

만약 명령이 이미 포그라운드에서 실행 중인데 터미널을 되찾아야겠다고 결정했다면 어떻게 해야 할까요? 중지할 필요가 없습니다. 먼저 Ctrl-Z를 눌러 실행 중인 프로세스를 일시 중지합니다. 그런 다음 bg 명령을 사용하여 일시 중지된 작업을 백그라운드로 보냅니다.

pete@icebox ~ $ sleep 1003
^Z
[4]+    Stopped     sleep 1003

pete@icebox ~ $ bg
[4]+    sleep 1003 &

이제 sleep 1003 프로세스가 백그라운드 작업으로 실행 중이며, jobs 명령으로 이를 확인할 수 있습니다.

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

백그라운드 프로세스를 포그라운드로 다시 가져오려면 fg 명령을 사용합니다. 작업 ID 를 지정하여 특정 작업을 가져올 수 있습니다 (예: fg %1). 인자 없이 fg 명령을 실행하면 가장 최근의 백그라운드 작업 ( +로 표시된 작업) 이 포그라운드로 가져와집니다.

fg %1

백그라운드 작업 종료하기

백그라운드 프로세스를 중지해야 하는 경우 kill 명령을 사용할 수 있습니다. fg 명령과 유사하게, 퍼센트 기호 (%) 를 접두사로 붙여 작업 ID 를 참조합니다. 이것이 Linux 작업 제어의 핵심 기능입니다.

kill %1

이러한 명령을 숙달하는 것은 셸에서 효율적으로 멀티태스킹하려는 모든 초보 Linux 사용자에게 필수적입니다.

로그인하여 학습 진행 상황을 저장하세요

로그인

연습 문제

Linux 작업 제어에 대한 지식을 실습에 적용하려면 이 실습을 시도해 보세요. 포그라운드 및 백그라운드 프로세스 관리, 리소스 모니터링, 프로세스 종료 시나리오를 직접 다루면서 이해도를 높이는 데 도움이 될 것입니다.

  1. Linux 프로세스 관리 및 모니터링 - 포그라운드 및 백그라운드 프로세스와 상호 작용하고, 리소스를 모니터링하며, 프로세스를 종료하는 방법을 연습하여 오래 실행되는 명령 시나리오에 직접적으로 대처합니다.

퀴즈

백그라운드 작업을 나열하는 데 사용되는 명령은 무엇입니까? (영어와 소문자만 사용하여 답하십시오.)