SYSCTL(8) FreeBSD システム管理者マニュアル SYSCTL(8)
名称
sysctl − カーネル状態の取得や設定 |
書式
sysctl [−bdehNnox] name[=value] ... |
sysctl [−bdehNnox] −a |
解説 |
sysctl はカーネル状態を取り出し、適切な権限があればプロセスがカーネル状態 を設定することを許します。取り出されたり、設定されたりした状態は、 ‘‘Management Information Base’’ (‘‘MIB’’) 形式を使って記述されます。この 形式では、要素はドット ‘‘.’’ で接続されます。 以下のオプションを使用可能です: |
−A
−o −a と等価です (互換性用)。 −a −b −d −e −h −N listsysctls () { set -A reply $(sysctl -AN ${1%.*}) } tcsh(1) で変数名を補完するには、次のようにします: |
complete sysctl ’n/*/‘sysctl -Na‘/’ |
−n
変数名の出力は抑制されて、値だけが表示されます。これはシェル変数 を設定するのに役に立ちます。たとえば、ページサイズを変数 psize に 保存するには、以下のようにします: set psize=‘sysctl -n hw.pagesize‘ −o −X −x sysctl で得られる情報は、整数、文字列、デバイス (dev_t) 、形式不明の変数 です。 sysctl ユーティリティはいくつかの形式不明の変数の形式を知っている だけで、それ以外のものに対しては 16 進ダンプに頼ります。形式不明の変数の 情報は、 ps(1), systat(1), netstat(1) などの特別な目的のプログラムによっ て取得された場合に、より効果的です。 通常のシステム動作中には修正できない変数のいくつかは、 loader(8) チューナ ブルで修正可能です。例えば、これらを loader.conf(5) で設定することで実現 できます。どのようなチューナブルが利用可能か、そしてそれらをどのように設 定するのかという更なる情報については、 loader.conf(5) を参照してくださ い。 文字列と整数の情報を簡単にまとめて以下に示します。これらの変数の詳細な説 明は、 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 レベルのカーネル/ハード
ウェア識別子、そしてユーザレベル識別子の定義 互換性 |
−w オプションは推奨されておらず、黙って無視されます。 |
関連項目
バグ
現状では sysctl ユーティリティは、sysctl ツリーの追跡、および、形式と名前 の情報を得る際に、文書化されていないカーネルの sysctl 機能へのインタ フェースを使用しています。この方法に関する正しいインタフェースは、現在検 討中です。 |
歴史
sysctl ユーティリティは 4.4BSD ではじめて登場しました。 FreeBSD 2.2 の sysctl は著しく改良されています。 FreeBSD 10.0 March 10, 2002 FreeBSD 10.0 |