SYSCTL
Section: Maintenance Commands (8)
索引
jman
BSD mandoc
索引
名称
sysctl
- カーネル状態の取得や設定
索引
書式
[-bdehNnox
]
name [= value
]
...
[-bdehNnox
]
-a
索引
解説
はカーネル状態を取り出し、適切な権限があれば
プロセスがカーネル状態を設定することを許します。
取り出されたり、設定されたりした状態は、
``Management Information Base''
(``MIB''
)
形式を使って記述されます。
この形式では、要素はドット ``.'' で接続されます。
以下のオプションを使用可能です:
- -A
-
-o a
と等価です (互換性用)。
- -a
-
現在利用可能な、データ形式を知らないもの (以下、形式不明の変数と称する)
でない値を列挙します。
1 個以上の変数名がコマンドラインに指定された場合、
本オプションは無視されます。
- -b
-
変数の値を加工せずに、バイナリ形式で表示します。
変数名や、最後の改行文字は出力されません。
これは、単一の変数に対して操作する際に便利でしょう。
- -d
-
変数の値の代りに解説を表示します。
- -e
-
変数の名前と値を、
`='
で区切ります。
ユーティリティにフィードバック可能な出力を生成するために有用です。
-N
または
-n
が指定される場合、または変数が設定される場合、本オプションは無視されます。
- -h
-
マシンが読み易いフォーマットではなく、人間が読み易いフォーマットで出力します。
- -N
-
値の出力は抑制されて、変数名のみを表示します。
プログラム可能な補完機能を持つシェルで、有用です。
zsh(1)
で変数名を補完するには、次のコードを使用します:
listsysctls () { set -A reply $(sysctl -AN ${1%.*}) }
compctl -K listsysctls sysctl
tcsh(1)
で変数名を補完するには、次のようにします:
"complete sysctl 'n/*/`sysctl -Na`/'"
- -n
-
変数名の出力は抑制されて、値だけが表示されます。
これはシェル変数を設定するのに役に立ちます。
たとえば、ページサイズを変数
psize
に保存するには、以下のようにします:
"set psize=`sysctl -n hw.pagesize`"
- -o
-
形式不明な値を表示します (通常は抑制されます)。
書式と長さが表示され、値の最初の 16 バイトが 16 進数でダンプされます。
- -X
-
-x a
と等価です (互換性用)。
- -x
-
-o
と同様ですが、
形式不明の変数の最初の数バイトの代りに全ての内容が 16 進数でダンプされます。
で得られる情報は、整数、文字列、デバイス
(Vt dev_t
)
、形式不明の変数です。
ユーティリティはいくつかの形式不明の変数の形式を知っているだけで、
それ以外のものに
対しては 16 進ダンプに頼ります。
形式不明の変数の情報は、
ps(1),
systat(1),
netstat(1)
などの特別な目的のプログラムによって取得された場合に、より効果的です。
通常のシステム動作中には修正できない変数のいくつかは、
loader(8)
チューナブルで修正可能です。
例えば、これらを
loader.conf5
で設定することで実現できます。
どのようなチューナブルが利用可能か、そしてそれらをどのように設定するのか
という更なる情報については、
loader.conf5
を参照してください。
文字列と整数の情報を簡単にまとめて以下に示します。
これらの変数の詳細な説明は、
sysctl(3)
を参照してください。
変更可能の列は、適切な権限を持つプロセスがその値を変更
できるかどうかを示しています。
文字列、整数、デバイス値を
で設定可能です。
デバイス値
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.clockratestructno
-
- "kern.posix1version整数no
-
- "kern.ngroups整数no
-
- "kern.job_control整数no
-
- "kern.saved_ids整数no
-
- "kern.boottimestructno
-
- "kern.domainname文字列yes
-
- "kern.filedelay整数yes
-
- "kern.dirdelay整数yes
-
- "kern.metadelay整数yes
-
- "kern.osreldate文字列no
-
- "kern.bootfile文字列yes
-
- "kern.corefile文字列yes
-
- "kern.dumpdevdev_tyes
-
- "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.loadavgstructno
-
- "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_devicedev_tno
-
- "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"
ここに挙げたもの以外の変数も存在します。
それらに関するより深い意味を知る
もっとも良く、かつ、おそらく唯一の方法は、それらを定義しているソースコードを
みる事であることは疑いのない事実でしょう。
索引
関連ファイル
- In sys/sysctl.h
-
トップレベルの識別子、第 2 レベルのカーネル/ハードウェア識別子、
そしてユーザレベル識別子の定義
- In sys/socket.h
-
第 2 レベルのネットワーク識別子の定義
- In sys/gmon.h
-
第 3 レベルのプロファイル識別子の定義
- In vm/vm_param.h
-
第 2 レベルの仮想メモリ識別子の定義
- In netinet/in.h
-
第 3 レベルのインターネット識別子と
第 4 レベルの IP 識別子の定義
- In netinet/icmp_var.h
-
第 4 レベルの ICMP 識別子の定義
- In netinet/udp_var.h
-
第 4 レベルの UDP 識別子の定義
索引
互換性
-w
オプションは推奨されておらず、黙って無視されます。
索引
関連項目
sysctl(3),
loader.conf5,
sysctl.conf5,
loader(8)
索引
バグ
現状では
ユーティリティは、sysctl ツリーの追跡、および、形式と名前の情報を得る際に、
文書化されていないカーネルの sysctl 機能へのインタフェースを使用しています。
この方法に関する正しいインタフェースは、現在検討中です。
索引
歴史
ユーティリティは
BSD 4.4
ではじめて登場しました。
Fx 2.2
の
は著しく改良されています。
索引
Index
- 名称
-
- 書式
-
- 解説
-
- 使用例
-
- 関連ファイル
-
- 互換性
-
- 関連項目
-
- バグ
-
- 歴史
-
Time: 07:07:46 GMT, January 12, 2009