IT 공부내용 정리/Linux

리눅스의 작업제어(백그라운드, 포그라운드)

따뜻한 차가움 2025. 3. 14. 11:08

리눅스의 작업 제어

 - 한 터미널에서 여러 프로세스를 실행하고 관리할 수 있음

 - C셸 최초 개발, 4.1BSD 커널에 포함

 - 본셸에도 도입되어 대부분의 유닉스 셸과 리눅스 셸에 포함하여 제공됨

 - 작업 제어 도구가 관리하는 프로세스를 작업이라고 함.

 - 작업제어는 전환, 일시중지, 종료의 기능을 가짐

 - 전환 : 포그라운드 <> 백그라운드 상태를 전환

 - 일시중지 : 작업을 잠시 중단함

 - 종료 : 작업을 종료함

 

포그라운드 작업

 - forward ground 작업

 - 작업자의 화면에서 진행되는 작업이다

 - 사용자가 입력한 명령이 실행되어 결과가 출력될 때 까지 기다리는 방식으로 처리되는 작업방식

 

백그라운드 작업

 - back ground 작업

 - 사용자가 입력한 명령이 실행되나 결과가 출력되는 것을 기다리지 않고 다른 작업을 진행하는 방식

 - 백그라운드 프로세스로 작업을 하려면 명령 프롬프트에 & 기호를 마지막에 붙여 입력하면 됨

ex) ls -la &

 - 사용자가 작업의 종료 시점을 알 수 없어 명령의 결과가 겹쳐 데이터가 이상해질 수 있음

 - 이것을 예방하기 위해 리다이렉션 기능(>)을 이용하여 결과값을 별도의 문서로 출력할 수 있음

 

https://warmice8226.tistory.com/47

 

리눅스 리다이렉션(>) - 결과값을 저장하거나 전달할 때

리다이렉션은 명령의 출력이나 오류메세지를 파일이나 다른 명령으로 전달하는 기능이다. 기본 파일 디스크립터더보기파일 디스크립터는 운영체제가 파일이나 입출력 스트림을 식별하는데

warmice8226.tistory.com

 

작업의 전환

특정 작업이 진행중일 때 일시정지 : ctrl + z 혹은 stop %[작업번호] (jobs에 나오는 그 번호)

지정한 작업을 백그라운드 작업으로 전환 : bg %[작업번호]

지정한 작업을 포그라운드 작업으로 전환 : fg %[작업번호]

 

작업을 일시정지하면 백그라운드 작업으로 넘어가게 되는데 해당 내용을 확인하기 위해 jobs 명령어로 확인할 수 있다.

jobs명령어로 해당 명령을 포그라운드로 전환시키면 다시 해당 작업을 이어갈 수 있게 된다.

 

https://warmice8226.tistory.com/48

 

터미널 명령어 - jobs 백그라운드 프로세스를 확인하고 싶을 때

사용 버전 : Linux 우분투(레드햇 계열) 24.04.01 LTS 버전사용한 시스템 지역/언어 : 대한민국/한글jobs --help 원문더보기jobs: jobs [-lnprs] [jobspec ...] 또는 jobs -x command [args]    작업 상

warmice8226.tistory.com

 

작업의 종료

보통 포그라운드 작업인 프로세스는 ctrl + c를 입력하면 작업이 종료됨

혹은 PID를 알아내어 kill 명령어를 사용

 

 

작업의 지속

로그아웃 하거나 터미널이 종료 되어도 백그라운드 작업을 시행해야 할 경우

nohup 기능을 사용할 수 있다.

 

https://warmice8226.tistory.com/49

 

터미널 명령어 - nohup 내가 없어도 컴퓨터는 작업을 계속해야 할 때

사용 버전 : Linux 우분투(레드햇 계열) 24.04.01 LTS 버전사용한 시스템 지역/언어 : 대한민국/한글man nohup 원문더보기NOHUP(1)                         User Commands           

warmice8226.tistory.com