리눅스 proc

From CS Wiki

개요[edit | edit source]

  • 리눅스 루트 디렉터리 바로 아래에 있는 폴더
  • /proc
  • 일종의 가상 파일시스템으로 동작 중인 프로세스의 상태정보, 하드웨어 정보, 시스템 정보 등을 알 수 있다.
  • /proc엔 현재 실행중인 PID와 같은 이름의 폴더들이 생성된다.
  • ps라는 명령어는 이 폴더의 내용을 조회해서 보여 준다.

구성[edit | edit source]

디렉터리 설명
/proc/[PID]/maps 프로세스가 mapping 된 메모리 주소 공간. 모든 프로세스에는 각자 주소 공간이 있으며, 이 주소 공간은 가상 메모리 관리자(VMM)가 제공하고 관리
/proc/[PID]/cmdline 프로세스 인수(argv) 전체를 포함. Command Line에서 넘어온 argumnet를 포함하여 프로세스가 질생된 방식을 정확하고 신속하게 파악하는 수단으로 사용
/proc/[PID]/coredump_filter 메모리 유형의 비트마스크를 포함하며 프로세스의 어떤 메모리 세그먼트를 덤프시킬 것인지 설정
/proc/[PID]/cwd/ 프로세스가 사용중인 디렉토리나 파일
/proc/[PID]/environ 프로세스의 현재 환경을 저장. 프로세스 map에서 가장 아랫부분, 즉 커널이 프로세스 환경 정보를 저장하는 메모리 위치를 직접 가리키는 링크
/proc/[PID]/exe 실행중인 프로그램 이름
/proc/[PID]/fd

/proc/[PID]/fdinfo

프로세스가 사용중인 File Descriptor 링크와 정보 저장
/proc/[PID]/limits 프로세스에 적용된 resource 제한 사항
/proc/[PID]/loginuid 해당 프로세스를 실행하는 login UID
/proc/[PID]/mem 프로세스가 사용중인 메모리 상태
/proc/uptime 시스템 가동 시간에 대한 정보를 기록한다.
/proc/meminfo 물리적 메모리 및 스왑 메모리 정보가 들어 있는 파일이다.
/proc/cmdline 부팅 시에 실행되는 커널 관련 옵션에 대한 정보를 담고 있다.
/proc/loadavg 최근 1분, 5분. 15분 동안의 평균 부하율을 기록하는 파일이다.
/proc/modules 현재 모듈로 로딩된 모듈 목록, lsmod 했을때 나오는 정보
/proc/mounts 마운트된 파일시스템에 대한 정보
/proc/partitions 현재 시스템의 파티션 정보
/proc/stat CPU, 인터럽트, 컨텍스트 스위치 등 일반적인 시스템 통계 정보