Zsh 백그라운드 작업

백그라운드 작업(Background Job)은 사용자가 현재 터미널 세션에서 실행 중인 작업을 일시 중단하고, 동시에 추가적인 작업을 실행할 수 있는 기능을 말합니다. Zsh(Z Shell)는 다른 리눅스 쉘과 마찬가지로 백그라운드 작업을 지원합니다. 이 글에서는 Zsh에서의 백그라운드 작업을 어떻게 수행하는지에 대해 알아보겠습니다.

백그라운드로 작업 실행하기

Zsh에서 작업을 백그라운드로 실행하기 위해서는 명령어 뒤에 & 기호를 추가하면 됩니다. 아래는 sleep 명령어를 백그라운드에서 실행하는 예시입니다.

$ sleep 10 &
[1] 1234

위 예시에서 sleep 10 명령어를 & 기호와 함께 실행하면, 쉘이 해당 작업을 백그라운드로 실행합니다. 쉘은 [1] 1234와 같은 메시지를 출력하며, 작업 번호와 해당 작업의 프로세스 ID를 알려줍니다.

작업 목록 확인하기

Zsh에서 현재 실행 중인 작업 목록을 확인하려면 jobs 명령어를 사용합니다. 이 명령어를 실행하면 현재 터미널 세션에서 실행 중인 모든 작업이 목록으로 출력됩니다.

$ jobs
[1]  + running  sleep 10 &

위 예시에서 jobs 명령어를 실행하면 [1] + running sleep 10 &와 같은 정보를 얻을 수 있습니다. 이 정보를 통해 현재 백그라운드로 실행 중인 작업을 확인할 수 있습니다.

작업 일시 중단하기

백그라운드로 실행된 작업을 일시 중단하려면 Ctrl + Z 키를 누르면 됩니다. 아래 예시에서는 sleep 10 작업을 일시 중단하고자 할 때 Ctrl + Z 키를 사용합니다.

$ sleep 10 &
[1] 1234
$ Ctrl + Z
[1]  + suspended  sleep 10

위 예시에서 Ctrl + Z 키를 누르면 [1] + suspended sleep 10와 같은 정보를 얻습니다. 작업이 일시 중단되며, 실행 중인 터미널 세션으로 돌아옵니다.

작업 다시 실행하기

일시 중단된 작업을 다시 실행하려면 fg 명령어를 사용합니다. fg 명령어를 실행하면 가장 최근에 일시 중단된 작업이 다시 실행됩니다.

$ fg
sleep 10

위 예시에서 fg 명령어를 실행하면 sleep 10 작업이 다시 실행되며, 해당 작업의 출력이 터미널에 표시됩니다.

작업 종료하기

백그라운드로 실행 중인 작업을 종료하려면 kill 명령어를 사용합니다. kill 명령어는 작업을 강제로 종료하는데 사용됩니다. 작업을 종료하려면 해당 작업의 프로세스 ID를 알아야 합니다.

$ kill %1

위 예시에서는 kill %1 명령어를 사용하여 sleep 10 작업을 종료합니다. %1은 해당 작업의 작업 번호를 나타냅니다.

정리

이제 Zsh에서의 백그라운드 작업에 대해 알아보았습니다. 백그라운드로 작업을 실행하고, 작업 목록을 확인하고, 작업을 일시 중단하고, 다시 실행하며, 작업을 종료하는 방법을 배웠습니다. 이러한 기능을 통해 터미널에서 효율적으로 작업을 관리할 수 있습니다.