このドキュメントで説明するソフトウェアは、Extended SupportまたはSustaining Supportのいずれかにあります。 詳細は、https://www.oracle.com/us/support/library/enterprise-linux-support-policies-069172.pdfを参照してください。
Oracleでは、このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお薦めします。
/proc
の下、特に/proc/sys
の下にある一部の仮想ファイルは書込み可能であり、それらを使用してカーネル内の設定を調整できます。 たとえば、ホスト名を変更するには、/proc/sys/kernel/hostname
に新しい値を書き込むことができます。
# echo www.mydomain.com > /proc/sys/kernel/hostname
他のファイルでは、バイナリまたはブール値を使用する値が取得されます。 たとえば、/proc/sys/net/ipv4/ip_forward
の値では、カーネルがIPv4ネットワーク・パケットを転送するかどうかが決定されます。
#cat /proc/sys/net/ipv4/ip_forward
0 #echo 1 > /proc/sys/net/ipv4/ip_forward
#cat /proc/sys/net/ipv4/ip_forward
1
sysctlコマンドを使用すると、/proc/sys
ディレクトリの下にある値を表示または変更できます。
root
であっても、/proc
下の仮想ファイル・エントリのファイル・アクセス権限は回避できません。 /proc/partitions
などの読取り専用エントリの値を変更しようとしても、write()
システム・コールを処理するカーネル・コードはありません。
現在のカーネル設定をすべて表示するには:
# sysctl -a
kernel.sched_child_runs_first = 0
kernel.sched_min_granularity_ns = 2000000
kernel.sched_latency_ns = 10000000
kernel.sched_wakeup_granularity_ns = 2000000
kernel.sched_shares_ratelimit = 500000
...
設定の名前のデリミタ文字は、/proc/sys
に相対的なパスにおいて、スラッシュ(/
)ではなくピリオド(.
)です。 たとえば、net.ipv4.ip_forward
はnet/ipv4/ip_forward
を表し、kernel.msgmax
はkernel/msgmax
を表します。
個々の設定を表示するには、その名前をsysctlの引数として指定します。
# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0
設定の値を変更するには、次の形式のコマンドを使用します。
# sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
この方法で行った変更が有効であるのは、システムが再起動されるまでです。 構成の変更をシステムの再起動後も維持するには、それらを/etc/sysctl.conf
ファイルに追加する必要があります。 このファイルに加えた変更は、システムの再起動時、または次の例のようにsysctl -pコマンドを実行した場合に有効になります。
#sed -i '/net.ipv4.ip_forward/s/= 0/= 1/' /etc/sysctl.conf
#grep ip_forward /etc/sysctl.conf
net.ipv4.ip_forward = 1 #sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0 #sysctl -p
net.ipv4.ip_forward = 1 net.ipv4.conf.default.rp_filter = 1 ... kernel.shmall = 4294967296 #sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
詳細は、sysctl(8)
およびsysctl.conf(5)
の各マニュアル・ページを参照してください。