SYSCTL(8)

명칭
sysctl - 커널 상태의 취득이나 설정

서식
sysctl [-bdeNnox] name[=value] ... sysctl [-beNnox] -a

해설
sysctl (은)는 커널 상태를 꺼내, 적절한 권한이 있으면 프로세스가 커널 상태를 설정하는 것을 허락합니다. 꺼내지고 충분해 설정 되거나 한 상태는, (Management Information Base) (“MIB”) 형식을 사용해 기술됩니다. 이 형식에서는, 요소는 닷 ``. ''로 접속됩니다.

이하의 옵션을 사용 가능합니다:

-A  -o -a (와)과 등가입니다 (호환성용).

-a  현재 이용 가능한, 데이터 형식을 모르는 걸(이하, 형식 불명의 변수라고 칭한다) (이)가 아닌 값을 열거합니다. 1 개 이상의 변수명이 명령행으로 지정되었을 경우, 본옵션은 무시됩니다.

-b  변수의 값을 가공하지 않고 , 바이너리 형식에서 표시합니다. 변수명이나, 마지막 개행 캐릭터는 출력되지 않습니다. 이것은, 단일의 변수에 대해서 조작할 때에 편리하겠지요.

-d  변수의 값대신에 해설을 표시합니다.

-e  변수의 이름과 값을, ‘=’ 그리고 단락짓습니다. sysctl 유틸리티에 피드백 가능한 출력을 생성하기 위해서 유용합니다. -N 또는 -n 하지만 지정되는 경우, 또는 변수가 설정되는 경우, 본옵션은 무시됩니다.

-N  값의 출력은 억제되어, 변수명만을 표시합니다. 프로그램 가능한 보완 기능을 가지는 쉘로, 유용합니다. zsh 그리고 변수명을 보완하려면 , 다음의 코드를 사용합니다:

        listsysctls () { set -A reply $(sysctl -AN ${1%. *}) }
        compctl -K listsysctls sysctl

-n  변수명의 출력은 억제되어, 값만이 표시됩니다. 이것은 셸 변수를 설정하는데 도움이 됩니다. 예를 들어, 페이지 사이즈를 변수 psize 에 보존하려면 , 이하와 같이 합니다:

        set psize=`sysctl -n hw.pagesize`

-o  형식 불명한 값을 표시합니다 (통상은 억제됩니다). 서식과 길이가 표시되어 값의 최초의 16 바이트가 16 진수로 덤프 됩니다.

-X  -x -a (와)과 등가입니다 (호환성용).

-x  -o (와)과 같습니다만, 형식 불명의 변수의 최초의 수바이트대신에 모든 내용이 16 진수로 덤프 됩니다.

sysctl 그리고 얻을 수 있는 정보는, 정수, 캐릭터 라인, 디바이스 (dev_t) , 형식 불명의 변수입니다. sysctl 유틸리티는 몇개의 형식 불명의 변수의 형식을 알고 있는 것만으로, 그 이외의 것에 대해 16 진덤프에 의지합니다. 형식 불명의 변수의 정보는, ps, systat, netstat 등이 특별한 목적의 프로그램에 의해 취득되었을 경우에, 보다 효과적입니다.

캐릭터 라인과 정수의 정보를 간단하게 정리해 이하에 나타냅니다. 이러한 변수의 상세한 설명은, sysctl(3) (을)를 참조해 주세요.

변경 가능의 열은, 적절한 권한을 가지는 프로세스가 그 값을 변경 할 수 있는지 어떤지를 나타내고 있습니다. 캐릭터 라인, 정수, 디바이스치를 sysctl 그리고 설정 가능합니다. 디바이스치 value (은)는, 캐릭터 디바이스 스페셜 파일명으로 지정 가능합니다. 특수한 값 off (와)과 none 하 “디바이스 없음” (을)를 의미합니다.
명칭형 변경 가능
kern.ostype | 캐릭터 라인 | no
kern.osrelease | 캐릭터 라인 | no
kern.osrevision | 정수 | no
kern.version | 캐릭터 라인 | no
kern.maxvnodes | 정수 | yes
kern.maxproc | 정수 | no
kern.maxprocperuid | 정수 | yes
kern.maxfiles | 정수 | yes
kern.maxfilesperproc | 정수 | yes
kern.argmax | 정수 | no
kern.securelevel | 정수 늘릴 뿐
kern.hostname | 캐릭터 라인 | yes
kern.hostid | 정수 | yes
kern.clockrate | struct | no
kern.posix1version | 정수 | no
kern.ngroups | 정수 | no
kern.job_control | 정수 | no
kern.saved_ids | 정수 | no
kern.boottime | struct | no
kern.domainname | 캐릭터 라인 | yes
kern.filedelay | 정수 | yes
kern.dirdelay | 정수 | yes
kern.metadelay | 정수 | yes
kern.osreldate | 캐릭터 라인 | no
kern.bootfile | 캐릭터 라인 | yes
kern.corefile | 캐릭터 라인 | yes
kern.dumpdev | dev_t | yes
kern.logsigexit | 정수 | yes
security.bsd.suser_enabled | 정수 | yes
security.bsd.see_other_uids | 정수 | yes
security.bsd.unprivileged_proc_debug | 정수 | yes
security.bsd.unprivileged_read_msgbuf | 정수 | yes
vm.loadavg | struct | no
hw.machine | 캐릭터 라인 | no
hw.model | 캐릭터 라인 | no
hw.ncpu | 정수 | no
hw.byteorder | 정수 | no
hw.physmem | 정수 | no
hw.usermem | 정수 | no
hw.pagesize | 정수 | no
hw.floatingpoint | 정수 | no
hw.machine_arch | 캐릭터 라인 | no
machdep.console_device | dev_t | no
machdep.adjkerntz | 정수 | yes
machdep.disable_rtc_set | 정수 | yes
machdep.guessed_bootdev | 캐릭터 라인 | no
user.cs_path | 캐릭터 라인 | no
user.bc_base_max | 정수 | no
user.bc_dim_max | 정수 | no
user.bc_scale_max | 정수 | no
user.bc_string_max | 정수 | no
user.coll_weights_max | 정수 | no
user.expr_nest_max | 정수 | no
user.line_max | 정수 | no
user.re_dup_max | 정수 | no
user.posix2_version | 정수 | no
user.posix2_c_bind | 정수 | no
user.posix2_c_dev | 정수 | no
user.posix2_char_term | 정수 | no
user.posix2_fort_dev | 정수 | no
user.posix2_fort_run | 정수 | no
user.posix2_localedef | 정수 | no
user.posix2_sw_dev | 정수 | no
user.posix2_upe | 정수 | no
user.stream_max | 정수 | no
user.tzname_max | 정수 | no

사용예
예를 들어, 시스템중에서 용서되고 있는 최대의 프로세스수를 알고 싶다 때는, 이하와 같이 합니다:

    sysctl kern.maxproc

시스템중에서 용서되고 있는 최대의 프로세스수를 1000 으로 설정한다 에는, 이하와 같이 합니다:

    sysctl kern.maxprocperuid=1000

크래쉬 덤프에 사용하는 디바이스는 다음과 같이 지정 가능합니다:

    sysctl kern.dumpdev=/dev/somedev

이것은 다음과 등가입니다

    dumpon /dev/somedev

시스템의 클럭레이트에 관한 정보를 얻으려면 , 이하의 같게 합니다:

    sysctl kern.clockrate

시스템 부하 (로드·애버리지)의 히스토리에 관한 정보를 얻으려면 , 이하와 같이 합니다:

    sysctl vm.loadavg

여기에 올린 것 이외의 변수도 존재합니다. 그것들에 관한보다 깊은 의미를 안다 무엇보다 자주(잘), 한편, 아마 유일한 방법은, 그것들을 정의하고 있는 원시 코드를 보는 일인 것은 혐의가 없는 사실이지요.

관련 파일
<sys/sysctl.h>
    톱 레벨의 식별자, 제 2 레벨의 커널/하드웨어 식별자, 그리고 유저 레벨 식별자의 정의
<sys/socket.h>
    제 2 레벨의 네트워크 식별자의 정의
<sys/gmon.h>
    제 3 레벨의 프로파일 식별자의 정의
<vm/vm_param.h>
    제 2 레벨의 가상 메모리 식별자의 정의
<netinet/in.h>
    제 3 레벨의 인터넷 식별자와 제 4 레벨의 IP 식별자의 정의
<netinet/icmp_var.h>
    제 4 레벨의 ICMP 식별자의 정의
<netinet/udp_var.h>
    제 4 레벨의 UDP 식별자의 정의

호환성
-w 옵션은 추천 되지 않고, 입다물어 무시됩니다.

관련 항목
sysctl(3), sysctl.conf(5)

버그
현재 상태로서는 sysctl 유틸리티는, sysctl 트리의 추적, 및, 형식과 이름의 정보를 얻을 때에, 문서화되어 있지 않은 커널의 sysctl 기능에의 인터페이스를 사용하고 있습니다. 이 방법에 관한 올바른 인터페이스는, 현재 검토중입니다.

역사
sysctl 유틸리티는 4.4BSD 그리고 처음 등장했습니다.

FreeBSD 2.2 의 sysctl (은)는 현저하게 개량되고 있습니다.