#6 리눅스 | 리눅스(유닉스) 프로세스 관리 및 제어

HYUN·2021년 6월 10일
0
post-thumbnail

프로세스와 바이너리의 차이

  • 바이너리: 저장매체에 저장되어 있는 실행파일(코드 이미지)
  • 프로세스: 실행 중인 프로그램
    • 가상 메모리, 물리 메모리의 정보
    • 스케쥴링의 단위
    • 시스템 리소스 관련 정보

foreground process | background process

  • foreground process는 쉘에서 해당 프로세스 실행을 명령한 후에 해당 프로세스가 수행이 종료 될 때까지 사용자는 다른 입력을 할 수 없습니다.
  • background process는 사용자의 입력과는 상관없이 실행되는 프로세스로 쉘에서 해당 프로세스를 실행할 시에 맨 뒤에 &를 붙여서 사용합니다. 해당 명령을 실행하면 background에서는 해당 명령어를 실행 중이어도 다른 명령어를 사용할 수 있습니다.

프로세스 제어 및 관리

만약 foreground process를 실행 중인 상황에서 문제가 생겼을 경우 다른 명령어를 사용할 수 없기 때문에 단축키를 사용하여 문제가 생긴 해당 프로세스를 해결할 수 있습니다.

  • ctrl + z 명령어는 foreground process를 실행 중지 상태로 변경해줍니다. 그리고 해당 프로세스는 background에서 중지 상태에서 대기합니다.

  • bg 명령어는 ctrl + z 명령어로 실행이 중지된 프로세스를 background에서 실행할 수 있습니다.

    • 해당 명령어를 그냥 사용하면 가장 마지막에 종료된 프로세스를 실행하며 리스트 목록의 번호를 뒤에 붙혀서 원하는 순서의 프로세스를 실행할 수 도 있습니다.
  • jobs 명령어는 background에서 관리 중인 프로세스들의 리스트를 확인할 수 있습니다.

  • ctrl + c 명령어는 프로세스의 작업을 완전히 종료합니다.

  • ps [option(s)] 명령어는 프로세스의 상태를 확인할 수 있습니다.

    • option(s): -a, -u, -l, -x, -e, -f 등 많은 옵션이 있습니다.
  • kill 명령어는 프로세스를 죽이는 명령어입니다. 프로세스를 강제로 종료하기 위해서 보통 -9 옵션을 함께 사용하며 ps 명령어를 통해 해당 프로세스의 상태 및 정보를 가져와 원하는 프로세스를 찾아 kill 명령어와 함께 죽일 수 있습니다.

profile
자바스크립트를 좋아합니다. | 이유를 알고 있는 것과 모르는 것의 차이는 분명하다.

0개의 댓글