서버/리눅스 기초

[Linux] 리눅스 프로세스 (백그라운드와 포그라운드) 관리

엔지니어 은성 2021. 9. 23. 11:46
포스팅 순서
  1. &연산자 백그라운드 실행
  2. jobs 명령어 , 백그라운드에서 돌아가는 프로세스 확인
  3. fg %1 포그라운드 전환
  4. bg %1 백그라운드 전환 
  5. 다른 tty 전환 (로그아웃해도 작업실행) # nohub command

▶ & 연산자 (백그라운드 실행)

포그라운드에서 명령어 입력 후 &를 붙이게 되면 작업 번호와 PID를 출력하고 다음 명령을 입력받을 수 있는 대기상태가 됩니다. 백그라운드 작업은 키보드 입력 없이 프로세스 장시간 실행해야 하는 경우에 사용하는 방법이며 시스템 부팅 시에 동작하는 대부분의 프로세스들은 이러한 백그라운드 방식으로 동작합니다. 백그라운드로 동작하는 프로세스는 앞에서 배운 kill명령어로 종료 가능합니다. 

 

# mc&  -> mc프로그램을 백그라운드로 실행, 작업 번호와 PID가 출력되면서 프로세스는 백그라운드로 실행됨

 


▶ Job 관리(jobs)

  • 터미널에 의해 제어되는 프로세스로 모든 job은 쉘에 의하여 작업 번호가 부여됨
  • 사용자가 실행시킨 프로세스 리스트 확인하는 쉘 내부 명령어 jobs
  • 실행시킨 프로세스 리스트 확인, 백그라운드 프로세스와 포그라운드 프로세스 등으로 작업을 전환하기 위한 목적으로 사용됨
  • 백그라운드에서 실행되는 작업확인 

 


▶ 포그라운드 작업 전환

# fg %n  ->n에 해당하는 작업 번호를 가진 작업을 포그라운드 작업으로 전환 fg foreground

# fg %1

 

ctrl + z 누르면 suspend signal을 발생시켜 작업이 중단

 


▶ 백그라운드 작업 전환

# bg %n  ->n에 해당하는 작업 번호를 가진 작업을 백그라운드 작업으로 전환

# bg %1

 


▶ 다른 tty 출력 nohub

  • 사용자가 시스템 작업을 실행한 후 로그아웃을 해야 할 때 사용하는 명령어 
  • 로그아웃해도 작업이 진행될 수 있도록 할 때 사용, 백업이나 tar 명령어를 통해 많은 파일을 압축하거나 wget ftp를 이용해 용량이 큰 파일을 다운로드할 때 시간이 많이 소요되므로 유용하게 사용할 수 있습니다.

# nohub [실행할 명령어 커맨드] ->로그아웃 시에도 작업이 계속 진행됨, 작업은 nohub.out에 저장됩니다.