PROCFS(5)

명칭
procfs - 프로세스 파일 시스템

서식

    proc		/proc	procfs	rw 0 0

해설
프로세스 파일 시스템, 즉 procfs (은)는 파일 시스템중에서 시스템 프로세스 테이블의 열람을 가능하게 합니다. procfs (은)는 통상 /proc 에 mount 되어 ps(1) (이)나 w(1) 그렇다고 하는 프로그램의 완전한 동작에 필요한 것입니다.

procfs (은)는 이전의 FreeBSD 1.1 procfs 에서의 실장과는 달라, 프로세스 공간에 2 개의 레벨의 시점을 제공합니다. 높은 레벨에서는, 프로세스는 그것 자신이, 10 진수에 의한 선두에 0 이 붙지 않는다 자신의 프로세스 ID 에 의해, 이름 붙이고 됩니다. 또 curproc (으)로 불리는 조사 요구를 행한 프로세스를 참조하는 특별한 노드가 존재합니다.

각각의 노드는 이하의 항목을 포함한 디렉토리입니다:

각각의 디렉토리는 몇 개의 파일을 포함하고 있습니다:

ctl 다양한 제어 조작을 서포트하는 기입만의 파일. 제어 명령은 ctl 파일에 캐릭터 라인으로서 기입해집니다. 제어 명령은:
    attach
        대상 프로세스를 정지해, 송신 프로세스에 대해서 디버그 제어 프로세스가 되도록(듯이) 준비한다.
    detach
        대상 프로세스의 실행을 계속해, 디버그 프로세스의 제어하로부터 떼어 놓습니다 (송신 프로세스일 필요는 없습니다).
    run 시그널이 닿는지, breakpoint에 이르는지, 또는 대상 프로세스가 종료할 때까지 대상 프로세스를 계속해 동작시킵니다.
    step
        시그널을 보내지 않고 대상 프로세스를 싱르스텝 시킵니다.
    wait
        대상 프로세스가 디버그에 적절한 평형 상태가 될 때까지 기다립니다. 대상 프로세스는 다른 어느 명령이 허가되는 것보다도 전에 이 상태가 될 필요가 있습니다.

    캐릭터 라인은, SIG 접두사 없음의 소문자의 시그널명에서도 상관하지 않습니다. 이 경우, 지정한 시그널이 프로세스에 도착됩니다. ((sigaction(2) 참조).

dbregs
    <machine/reg.h> 안의 struct dbregs 그리고 정의되는 디버그 레지스터. 현재 dbregs (은)는 i386 아키텍쳐에서만 실장되고 있습니다.

etype
    file 항목에 의해 참조되는 실행 형식의 타입.

file
    프로세스 텍스트가 읽혀지는 vnode 에의 참조. 이것은 프로세스의 심볼 테이블에의 액세스를 얻는, 또는 프로세스의 이제(벌써) 1 개의 카피를 시작하기 위해서(때문에) 사용됩니다.

fpregs
    <machine/reg.h> 안의 struct fpregs 그리고 정의되는 부동 소수점 레지스터. fpregs (은)는, 범용 레지스터 세트와 부동 소수점 레지스터 세트가 명확하게 구별된 머신에게만 실장되고 있습니다.

map 프로세스의 가상 메모리의 MAP.

mem 프로세스의 완전한 가상 메모리 이미지. 프로세스중에 존재하는 주소만을 액세스 할 수 있습니다. 이 파일에 대한 읽고 쓰기는 프로세스를 수정합니다. 텍스트 세그먼트(segment)에 대한 기입은 그 프로세스에만 머뭅니다.

note
    프로세스에 시그널을 보내기 위해서(때문에) 사용됩니다. 실장되고 있지 않습니다.

notepg
    프로세스 그룹에 시그널을 보내기 위해서(때문에) 사용됩니다. 실장되고 있지 않습니다.

regs
    프로세스의 레지스터 세트에의 읽고 쓰기 수단을 제공합니다. 이 파일은 <machine/reg.h> 안으로 정의되고 있다 struct regs 바이너리 데이터 구조체를 포함하고 있습니다. regs (은)는 프로세스가 정지하고 있을 때 마셔 기입할 수 있습니다.

rlimit
    이것은, 프로세스의 현재 및 최대의 제한을 포함한, 독해 전용 파일입니다. 각 행의 서식은 rlimit current max (이어)여,-1 는 무한을 의미합니다.

status
    프로세스 상태. 이 파일은 읽을 보고로, 공백에서 나눌 수 있었던 이하의 다수의 필드를 포함한 1 행을 돌려줍니다:

    •   명령명
    •   프로세스 ID
    •   parent process ID
    •   프로세스 그룹 ID
    •   세션 ID
    •   제어 단말의 major,minor , 또는 만약 제어 단말이 없는 경우에는 -1,-1.
    •   프로세스 플래그의 리스트: ctty 제어 단말이 있는, sldr 프로세스가 세션 리더인, noflags 다른 2 개의 플래그가 세트되어 있지 않다.
    •   콤마로 단락지은 초로 마이크로 세컨드에 의한 프로세스 개시시각
    •   콤마로 단락지은 초로 마이크로 세컨드에 의한 유저 시간
    •   콤마로 단락지은 초로 마이크로 세컨드에 의한 시스템 시간
    •   웨이트 채널 메세지
    •   실효 유저 ID 와 모두 콤마로 단락지어졌다 그룹 리스트(최초의 항목은 실효 그룹 ID)로부터 완성되어 있다 프로세스크리덴샤르

대상이 디버거에 의해 fork/exec 되는 통상의 데밧깅 환경에서는, 디버거가 fork 해, 아이는 자기 자신으로 멈춘다(예를 들면 스스로 주었다 SIGSTOP) 합니다. 부모는 적절한 ctl 파일을 통해서 wait 그리고 attach 명령을 발행해야 합니다. child process는 exec 호출이 끝난 직후에 SIGTRAP (을)를 받습니다 (execve(2) 참조).

각각의 노드는 프로세스의 유저에게 소지되어 유저의 프라이머리 그룹에 속합니다. mem 노드는 예외적으로 kmem 그룹에 속합니다.

관련 파일
/proc
    procfs 의 통상의 마운트 포인트.
/proc/pid
    프로세스 pid 의 프로세스 정보를 포함한 디렉토리
/proc/curproc
    경향 프로세스의 프로세스 정보를 포함한 디렉토리
/proc/curproc/cmdline
    프로세스의 실행 형식명
/proc/curproc/ctl
    프로세스에의 제어 메세지를 보내기 위해서(때문에) 사용됩니다
/proc/curproc/etype
    실행 형식 타입
/proc/curproc/file
    실행 형식 이미지
/proc/curproc/fpregs
    프로세스 부동 소수점 레지스터 세트
/proc/curproc/map
    프로세스의 가상 메모리 MAP
/proc/curproc/mem
    프로세스의 완전한 가상 address 공간
/proc/curproc/note
    프로세스에의 시그널 송신에 사용됩니다
/proc/curproc/notepg
    프로세스 그룹에의 시그널 송신에 사용됩니다
/proc/curproc/regs
    프로세스의 레지스터 세트
/proc/curproc/rlimit
    프로세스의 현재 및 최대의 rlimit
/proc/curproc/status
    프로세스의 현재 상태

관련 항목
mount(2), sigaction(2), unmount(2), mount_procfs(8)

저자
-nosplit 이 메뉴얼 페이지는 Jan-Simon Pendry 에 의해 제공된 기술에 근거해 Garrett Wollman 에 의해 쓰여져 후에 Mike Pritchard 에 의해 새로 고쳐 되었습니다.