초코레

foreground process 와 background process 본문

Linux

foreground process 와 background process

초코레 2020. 7. 13. 20:11
  • foreground process : 쉘(shell)에서 해당 프로세스 실행을 명령한 후, 해당 프로세스 수행 종료까지 사용자가 다른 입력을 하지 못하는 프로세스
  • background process : 사용자 입력과 상관없이 실행되는 프로세스(맨 뒤에 &를 붙이면 된다)
find / -name '*.py' > list.txt &
[1] 57
→ 이렇게 background process로 실행하면 다음 명령줄을 입력할 수 있게 되고 해당 프로세스는 뒷단에서 실행된다.
[1] 은 작업 번호 (job number), 57 은 pid (process ID) 를 나타낸다.

CTRL + z : foreground 프로세스를 실행 중지 상태(suspend 모드)로 변경, 중지 상태가 되면 background process로 변경된다.

# find / -name '*.txt'
^Z
[1]- Stopped                               find / -name '*.txt'
# find / -name '*.py'
^Z
[2]- Stopped                               find / -name '*.py'

jobs : 백그라운드로 진행 또는 중지된 상태로 있는 프로세스를 조회

jobs
[1]-  Stopped                              find / -name '*.txt'
[2]+ Stopped                              find / -name '*.py'

bg [작업번호] : 맨 마지막 CTRL + z 로 중지된 프로세스를 background 프로세스로 실행한다.

작업번호를 붙이면 해당 작업번호의 프로세스를 실행한다.

bg
[2]+ find / -name '*.py' &

CTRL + c : 현재 실행 중인 프로세스 종료 (실행 취소)

 

ps : 프로세스 상태 확인

  • -a : 시스템을 사용하는 모든 사용자의 프로세스 출력 (보통 aux 와 같이 u, x 옵션과 함께 사용)
  • -u : 프로세스 소유자에 대한 상세 정보 출력
  • -l : 프로세스 관련 상세 정보 출력
  • -x : 터미널에 로그인한 후 실행한 프로세스가 아닌 프로세스들도 출력함. 주로 데몬 프로세스까지 확인하기 위해 사용한다. 본래 ps 명령은 현재 사용자가 실행한 프로세스들만 보여주기 때문에 이 옵션을 사용하는 경우가 많다.
    • 데몬 프로세스(daemon process) : daemon은 악마를 의미함. 사용자 모르게 시스템 관리를 위해 실행되는 프로세스로 보통 시스템이 부팅될 때 자동 실행된다. (예: ftpd, inetd 등)
  • -e : 시스템상의 모든 프로세스에 대한 정보 출력
  • -f : 프로세스 간 관계 정보(출력 항목) 출력
ps [옵션]

ps aux more 결과

ps 출력 정보 항목

  • USER : 프로세스를 실행시킨 사용자 ID
  • PID : 프로세스 ID
  • %CPU : 마지막 1분 동안 프로세스가 사용한 CPU시간의 백분율
  • %MEM : 마지막 1분 동안 프로세스가 사용한 메모리 백분율
  • VSZ : 프로세스가 사용하는 가상 메모리 크기
  • RSS : 프로세스에서 사용하는 실제 메모리 크기
  • TTY : 이 프로세스가 어떤 터미널(하드웨어 리소스)과 연결되어 있는지
  • STAT : 프로세스 상태
  • START : 프로세스가 시작된 시간
  • TIME : 현재까지 사용된 CPU 시간(분:초)
  • COMMAND : 명령어

kill : 프로세스 중지. 주로 작업 강제 종료를 위한 -9 옵션과 함께 사용한다.

kill [옵션] [pid]
kill -9 57

'Linux' 카테고리의 다른 글

하드 링크와 소프트 링크  (0) 2020.07.14
리눅스 리다이렉션(redirection)과 파이프(pipe)  (0) 2020.07.12
파일 및 권한 명령어  (0) 2020.07.11
다중 사용자 관련 명령어  (0) 2020.07.11
AWS에서 서버 생성하기  (0) 2020.07.11