백그라운드에서 실행 중인 작업을 다시 포그라운드로 가져오고 싶다면, fg
명령어를 사용하면 됩니다. 다음은 이 과정을 단계별로 설명합니다:
- 먼저, 현재 세션에서 실행 중인 백그라운드 작업의 목록을 확인합니다. 이를 위해
jobs
명령어를 사용할 수 있습니다. 이 명령은 모든 백그라운드 작업과 각 작업에 할당된 번호를 보여줍니다.
jobs
jobs
명령의 출력에서, 포그라운드로 가져오고 싶은 작업의 번호를 확인합니다. 이 번호는 대괄호([]
) 안에 표시됩니다.이제,
fg
명령어와 함께 해당 작업 번호를 사용하여 백그라운드 작업을 포그라운드로 이동시킬 수 있습니다. 예를 들어, 백그라운드 작업 번호가 1인 작업을 포그라운드로 가져오고 싶다면 다음과 같이 입력합니다:
fg %1
여기서 %1
은 jobs
명령어로 확인한 백그라운드 작업의 번호입니다. 작업 번호는 작업을 유니크하게 식별하는데 사용됩니다.
fg
명령어를 사용하면 해당 백그라운드 작업이 포그라운드로 전환되어, 터미널 입력을 해당 작업으로 다시 할당하게 됩니다. 만약 여러 백그라운드 작업이 있다면, 각 작업을 fg %작업번호
형식으로 포그라운드로 가져올 수 있습니다.
jobs 에 나오지 않는 백그라운드 작업은?
ps -ef
명령어로 확인할 수 있는 프로세스와 jobs
명령어로 나열되는 작업 사이에는 중요한 차이가 있습니다. jobs
명령어는 현재 쉘 세션과 관련된 백그라운드 작업만을 나열합니다. 즉, 현재 사용자가 시작한 백그라운드 작업과 직접 관련이 있는 것들만 보여줍니다. 반면에 ps -ef
는 시스템상의 모든 프로세스를 보여주므로, 다른 사용자나 시스템 자체에 의해 시작된 프로세스도 포함됩니다.
jobs
명령어로는 나타나지 않는 백그라운드 프로세스를 fg
명령어를 통해 포그라운드로 가져오는 것은 직접적으로 불가능합니다. 이러한 프로세스는 현재 쉘 세션의 일부가 아니기 때문에, fg
명령어의 대상이 될 수 없습니다.
그러나, 특정한 경우에는 reptyr
같은 도구를 사용하여 다른 세션의 백그라운드 프로세스를 현재 쉘 세션으로 가져올 수 있습니다. reptyr
은 프로세스의 제어 터미널(TTY)을 현재 세션으로 변경하는 도구로, 이를 통해 다음과 같이 특정 프로세스를 현재 쉘 세션으로 가져올 수 있습니다:
ps -ef
또는pgrep
명령어를 사용하여 포그라운드로 가져오고 싶은 프로세스의 PID(프로세스 ID)를 찾습니다.sudo reptyr PID
명령어를 실행하여 해당 프로세스를 현재 쉘 세션으로 옮깁니다.
이 방법을 사용하기 전에, reptyr
이 시스템에 설치되어 있는지 확인하거나 필요한 경우 설치해야 할 수도 있습니다. reptyr
을 사용하는 것은 일부 제한이 있을 수 있고, 모든 경우에 작동하는 것은 아니므로, 사용 전에 해당 도구의 문서를 참조하는 것이 좋습니다.
'IT > 리눅스' 카테고리의 다른 글
작업을 잠시 백그라운드로 돌려두고 작업하기 (0) | 2024.04.05 |
---|---|
tee 명령 - 표준 출력을 파일로 저장하자 (0) | 2024.04.04 |
리눅스 - sed를 이용해서 한꺼번에 특정 문자열을 바꾸는 명령 (0) | 2024.04.03 |
60초 안에 Linux 성능 분석하기 - 원본 글 번역 (0) | 2023.12.21 |
우분투 부팅 usb 설치 디스크 만드는 방법 - 기초 (0) | 2023.04.21 |