[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

sysctl【コマンド】

pointこの用語のポイント

pointUNIX系で使えるコマンドだよ

pointカーネルのパラメータを変更するよ

point再起動するとリセットされるよ

スポンサーリンク

簡単に書くよ

sysctl【コマンド】とは

カーネルのパラメータを変更するときに使うコマンド
です。

image piyo

詳しく書くよ

まずは予備知識から行きましょう。

OSは「パソコンさんの人格に相当するソフト」ね。
「これが無いとパソコンじゃねーよ」な基本ソフトです。
パソコンさんは、中にOSを入れることによって、パソコンとして動くことができます。

sysctl

パソコンさんの中にWindowsを入れれば「はーい、ボクWindowsだよー」な人格になりますし、Macを入れれば「ヘーイ、ミーはMacさー」な人格になります。

sysctl2

カーネルは「OSの中核部分として頑張っているソフトウェア」です。
OSを一つの組織と見なした場合、カーネルさんは中心人物です。
こいつがいなければ始まりません。

sysctl3

ただし、カーネルさんだけでは組織の運営が成り立ちません。
シェルデーモンといった、その他のソフトウェアを手足のように使うことによって、はじめて組織が回ります。

「カーネルさんは大事なやつだけど、カーネルさんだけではOSは成り立たない」と理解してください。
カーネルさんとあれやこれやのソフトウェアが組み合わさって、一つのOSが出来あがっています。

sysctl4

カーネルさんには、動かす際のパラメータが、あれやこれやとあります。
「パラメータ」と言われてもよく分からない人は、設定値だと思ってください。
値を変更すると、カーネルさんの動きや状態が変わります。

それを踏まえて、カーネルのパラメータを変更するときに使うコマンドが「sysctl」コマンドです。
「sysctl」コマンドは、UNIX系(LinuxとかMacとか)で使えます。

書き方は

sysctl [オプション] [パラメータ名=値]

です。

オプションは、あれやこれやとあります。

オプション説明
-aすべての設定値を表示する
Display all values currently available.
--allすべての設定値を表示する
Display all values currently available.
-A「-a」と同じ
Alias of -a
-X「-a」と同じ
Alias of -a
-b1行でずらずらっと表示する。多分、値だけが表示されている
Print value without new line.
--binary1行でずらずらっと表示する。多分、値だけが表示されている
Print value without new line.
-e不明なキーエラーを無視する
Use this option to ignore errors about unknown keys.
--ignore不明なキーのエラーを無視する
Use this option to ignore errors about unknown keys.
-Nキー名だけ表示する(値を表示しない)
Use this option to only print the names. It may be useful with shells that have programmable completion.
--namesキー名だけ表示する(値を表示しない)
Use this option to only print the names. It may be useful with shells that have programmable completion.
-n値だけ表示する(キー名を表示しない)
Use this option to disable printing of the key name when printing values.
--values値だけ表示する(キー名を表示しない)
Use this option to disable printing of the key name when printing values.
-p【ファイル名】ファイルから読み込んだ内容をsysctlのパラメータに設定する。
Load in sysctl settings from the file specified or /etc/sysctl.conf if none given. Specifying as filename means reading da
--load=【ファイル名】ファイルから読み込んだ内容をsysctlのパラメータに設定する。
Load in sysctl settings from the file specified or /etc/sysctl.conf if none given. Specifying as filename means reading data from standard input. Using this option will mean arguments to sysctl are files, which are read in the order they are specified. The file argument may be specified as regular expression.
-f「-p」と同じ
Alias of -p
-rうんちゃらかんちゃら
Only apply settings that match pattern. The pattern uses extended regular expression syntax.
--patternうんちゃらかんちゃら
Only apply settings that match pattern. The pattern uses extended regular expression syntax.
-q画面に表示しない?
Use this option to not display the values set to stdout.
--quiet画面に表示しない?
Use this option to not display the values set to stdout.
-wsysctlの設定を変更したいときは、このオプションを使ってね?
Use this option when you want to change a sysctl setting.
--writesysctlの設定を変更したいときは、このオプションを使ってね?
Use this option when you want to change a sysctl setting.
-oないよ
Does nothing, exists for BSD compatibility.
-xないよ
Does nothing, exists for BSD compatibility.
-d「-h」と同じ
Alias of -h
--deprecatedうんちゃらかんちゃら
Include deprecated parameters to --all values listing.
--systemあれやこれやの設定ファイルから読み込むよ
Load settings from all system configuration files.
/run/sysctl.d/*.conf
/etc/sysctl.d/*.conf
/usr/local/lib/sysctl.d/*.conf
/usr/lib/sysctl.d/*.conf
/lib/sysctl.d/*.conf
/etc/sysctl.conf
-hヘルプを表示する
display this help and exit
--helpヘルプを表示する
display this help and exit
-Vバージョン情報を表示する
output version information and exit
--versionバージョン情報を表示する
output version information and exit

ですね。

それでは、実際の使い方を見てみましょう。
「-a」オプションを指定して

sysctl -a

を実行すると、すべてのパラメータが表示されます。
私の環境では、以下の内容が表示されました。

abi.vsyscall32 = 1
crypto.fips_enabled = 0
debug.exception-trace = 1
debug.kprobes-optimization = 1
dev.cdrom.autoclose = 1
dev.cdrom.autoeject = 0
dev.cdrom.check_media = 0
dev.cdrom.debug = 0
dev.cdrom.info = CD-ROM information, Id: cdrom.c 3.20 2003/12/17
dev.cdrom.info =

(以下略)


値を設定するときは

設定項目=値

形式で設定します。
例えば

sysctl debug.exception-trace=0

を実行すると「debug.exception-trace」に「0」が表示されます。

これが「sysctl」コマンドの基本的な使い方です。
オプションについては、必要に応じて、情報を補完してください。

ちなみに、パラメータの設定項目と値は

/proc/sys

配下に、項目ごとにファイルが分かれて保存されています。
例えば

debug.exception-trace



(/proc/sys)/debug/exception-trace

です。
「.」がディレクトリの区切りになります。

例えば

sysctl debug.exception-trace

の実行結果が

debug.exception-trace = 1

だったとしましょう。
パラメータ「debug.exception-trace」の設定値は「1」です。

この状態で

more /proc/sys/debug/exception-trace

を実行すると

1

と表示されます。

この状態で

sysctl debug.exception-trace=0

を実行します。
パラメータ「debug.exception-trace」の値が「0」に変更されました。

この状態で

more /proc/sys/debug/exception-trace

を実行すると

0

と表示されます。
パラメータ「debug.exception-trace」の設定値が「/proc/sys/debug/exception-trace」に保存されていることが分かります。

image piyo2

一言でまとめるよ

まぁ「sysctl」ってコマンドが出てきたら「カーネルのパラメータを変更するときに使うんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク