第3章 システム設定の構成
この章では、システムの構成設定を変更する際に使用できるファイルおよび仮想ファイル・システムについて説明します。
3.1 /etc/sysconfigファイルについて
/etc/sysconfig
ディレクトリには、システムの構成を制御するファイルが含まれています。このディレクトリの内容は、システムにインストールしたパッケージによって異なります。
/etc/sysconfig
ディレクトリには、次のようなファイルが含まれます。
-
atd
-
atd
デーモンに対して追加のコマンドライン引数を指定します。 -
authconfig
-
様々な認証メカニズムおよびオプションを使用するかどうかを指定します。たとえば、エントリ
USEMKHOMEDIR=no
は、ユーザーが最初にログインしたときのユーザー用ホーム・ディレクトリの作成を無効にします。 -
autofs
-
デバイスを自動的にマウントしたり、自動マウンタの操作を制御するためのカスタム・オプションを定義します。
-
crond
-
ブート時に引数を
crond
デーモンに渡します。 -
firewalld
-
起動時に引数をファイアウォール・デーモン(
firewalld
)に渡します。 -
grub
-
GRUB 2ブート・ローダーのデフォルト設定を指定します。このファイルは
/etc/default/grub
へのシンボリック・リンクです。詳細は、1.2項「GRUB 2ブート・ローダーの操作」を参照してください。 -
init
-
ブート・プロセス中のシステムの表示方法と機能を制御します。
-
keyboard
-
キーボードを指定します。
-
modules
(ディレクトリ) -
ブート時に追加モジュールをロードするためにカーネルで実行するスクリプトが含まれます。
modules
ディレクトリ内のスクリプトは、拡張子が.modules
で、実行可能権限755が必要です。例として、uinput
モジュールをロードするbluez-uinput.modules
スクリプトを参照してください。詳細は、5.5項「ブート時にロードされるモジュールの指定」を参照してください。 -
named
-
ブート時に引数を名前サービス・デーモンに渡します。
named
デーモンは、Berkeley Internet Name Domain (BIND)ディストリビューションに含まれるドメイン・ネーム・システム(DNS)サーバーです。このサーバーは、ネットワーク上でホスト名をIPアドレスに関連付ける表を保持します。 -
nfs
-
リモート・プロシージャ・コール(RPC)サービスがNFS v2およびv3で使用するポートを制御します。このファイルを使用して、NFS v2およびv3のファイアウォール・ルールを設定できます。NFS v4のファイアウォール構成では、このファイルを編集する必要はありません。
-
ntpd
-
ブート時に引数をネットワーク・タイム・プロトコル(NTP)デーモンに渡します。
-
samba
-
ブート時に引数を
smbd
、nmbd
およびwinbindd
デーモンに渡して、Windowsクライアントのファイル共有接続、NetBIOS-over-IPネーミング・サービス、およびドメイン・コントローラへの接続管理をサポートします。 -
selinux
-
システム上でSELinuxの状態を制御します。このファイルは
/etc/selinux/config
へのシンボリック・リンクです。詳細は、Oracle® Linux: SELinuxの管理を参照してください。 -
snapper
-
snapper
ユーティリティによってコンテンツをスナップショットとして記録できる、btrfsファイル・システムおよびシンプロビジョニングされたLVMボリュームのリストを定義します。詳細は、Oracle® Linux 7: ファイル・システムの管理を参照してください。 -
sysstat
-
sadcなど、システム・アクティビティのデータ・コレクタ・ユーティリティのロギング・パラメータを構成します。
詳細は、/usr/share/doc/initscripts*/sysconfig.txt
を参照してください。
Oracle Linuxの以前のリリースでは、システムのホスト名は/etc/sysconfig/network
で定義されていました。現在、ホスト名は/etc/hostname
で定義され、hostnamectlコマンドを使用して変更できます。ホスト名は、単純な短縮名ではなく、host20.mydomain.com
などの完全修飾ドメイン名(FQDN)である必要があります。
さらに、デフォルト言語、キーボード、コンソール・フォントなど、システム全体のデフォルトのローカリゼーション設定が/etc/sysconfig/i18n
で定義されました。このような設定は、現在/etc/locale.conf
および/etc/vconsole.conf
で定義されます。
詳細は、hostname(5)
、hostnamectl(1)
、locale.conf(5)
、およびvconsole.conf(5)
の各マニュアル・ページを参照してください。
3.2 /proc仮想ファイル・システムについて
/proc
ディレクトリ階層内のファイルには、システム・ハードウェアおよびシステムで実行中のプロセスに関する情報が含まれています。カーネルの構成を変更するには、書込み権限が設定されている特定のファイルに書き込みます。
proc
ファイル・システムの名前はOracle Solarisオペレーティング・システムの元の目的に由来し、これは、実行プロセス内部のデータ構造へのデバッグ・ツールによるアクセスを可能にすることでした。このインタフェースはLinuxによって追加され、カーネル内のデータ構造にアクセスできるように拡張されました。時間の経過とともに、/proc
は完全に無秩序になり、これを整理しようとしてsysfs
ファイル・システムが作成されました。詳細は、第3.3項「/sys仮想ファイル・システムについて」を参照してください。
/proc
ディレクトリの下のファイルは、基礎となるデータ構造およびシステム情報のブラウズ可能ビューを表示するために、要求に応じてカーネルによって作成される仮想ファイルです。このように、/proc
は仮想ファイル・システムの1つの例です。ほとんどの仮想ファイルはサイズが0バイトとしてリストされますが、表示すると、大量の情報が含まれています。
/proc/interrupts
、/proc/meminfo
、/proc/mounts
、/proc/partitions
などの仮想ファイルでは、システムのハードウェアのビューが提供されます。その他の/proc/filesystems
や/proc/sys
の下のファイルなどでは、システムの構成に関する情報が提供され、この構成を変更できます。
関連トピックに関する情報が含まれるファイルは、仮想ディレクトリにグループ化されます。たとえば、システムで現在実行中の各プロセスに対して、/proc
に別々のディレクトリが存在し、そのディレクトリの名前が数値のプロセスIDに対応する場合があります。/proc/1
は、PIDが1であるsystemd
プロセスに対応します。
cat、lessおよびviewなどのコマンドを使用すると、/proc
内の仮想ファイルを調査できます。たとえば、/proc/cpuinfo
にはシステムのCPUに関する情報が格納されています。
# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 42
model name : Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
stepping : 7
cpu MHz : 2393.714
cache size : 6144 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
...
/proc
の下の特定のファイルには、アクセスするためにroot
権限が必要であり、判読不可の情報が格納されます。lspci、freeおよびtopなどのユーティリティを使用すると、これらのファイルの情報にアクセスできます。たとえば、lspciでは、システム上のすべてのPCIデバイスがリストされます。
# lspci
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
00:02.0 VGA compatible controller: InnoTek Systemberatung GmbH VirtualBox Graphics Adapter
00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02)
00:04.0 System peripheral: InnoTek Systemberatung GmbH VirtualBox Guest Service
00:05.0 Multimedia audio controller: Intel Corporation 82801AA AC'97 Audio Controller (rev 01)
00:06.0 USB controller: Apple Inc. KeyLargo/Intrepid USB
00:07.0 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)
00:0b.0 USB controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller
00:0d.0 SATA controller: Intel Corporation 82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode]
(rev 02)
...
3.2.1 /procの下の仮想ファイルおよびディレクトリ
次の表に、/proc
ディレクトリ階層の下の最も有益な仮想ファイルとディレクトリを示します。
/proc
の下の仮想ファイルおよびディレクトリ仮想ファイルまたはディレクトリ | 説明 |
---|---|
|
プロセスID(
|
|
メモリー・フラグメンテーションの診断に関する情報を提供します。 |
|
システムで使用可能な様々なバス( |
|
システムで使用中のリソース制御グループについての情報を提供します。 |
|
ブート時にカーネルに渡されるパラメータをリストします。 |
|
システムのCPUに関する情報を提供します。 |
|
インストールされているすべての暗号化方法に関する情報を提供します。 |
|
現在構成されているすべてのキャラクタ・デバイスとブロック・デバイスの名前およびメジャー・デバイス番号をリストします。 |
|
現在使用中のダイレクト・メモリー・アクセス(DMA)チャネルをリストします。 |
|
不揮発性RAM (nvram )、リアルタイム・クロック(rtc )、サウンド用のメモリー割当(snd-page-alloc )に対するドライバなど、カーネルによって使用されるドライバに関する情報を格納します。 |
execdomains
|
Oracle Linuxカーネルでサポートされるバイナリに対する実行ドメインをリストします。 |
|
カーネルでサポートされるファイル・システム・タイプをリストします。 |
|
マウント済のファイル・システムに関する情報を、ファイル・システム・タイプで編成して格納します。 |
|
システム起動時からの各CPUに対する割込み要求キュー(IRQ)ごとの割込み数を記録します。 |
|
各物理デバイスのシステム・メモリー・マップをリストします。 |
|
カーネルがデバイスに関して使用するI/Oポート・アドレスの範囲をリストします。 |
|
各IRQに関する情報を格納します。各IRQとシステムCPUの間のアフィニティを構成できます。 |
|
システムの物理メモリーを、crashまたはgdbなどのデバッガを使用して調査できる |
|
カーネル生成メッセージを記録し、これは、dmesgなどのプログラムによって取得されます。 |
|
過去1分間、5分間および15分間のシステム・ロード平均(キューに入れられたプロセスの数)、実行中プロセスの数、プロセスの合計数、および実行中のプロセスのPIDを表示します。 |
|
カーネルがプロセスのために現在保持しているファイル・ロックに関する情報を表示します。提供される情報は次のとおりです。
|
|
複数ディスクRAIDデバイスに関する情報をリストします。 |
|
システムのメモリーの使用量を、freeまたはtopコマンドを使用して利用できる情報より詳細にレポートします。 |
|
カーネルに現在ロードされているモジュールに関する情報を表示します。lsmodコマンドは、モジュールのカーネル・メモリー・オフセットを除外して、同じ情報をフォーマットし、表示します。 |
|
マウントされているすべてのファイル・システムに関する情報をリストします。 |
|
ネットワーキング・プロトコル、パラメータおよび統計に関する情報を提供します。各ディレクトリおよび仮想ファイルは、システムのネットワークの構成に関する部分を記述します。 |
|
メジャー・デバイス番号とマイナー・デバイス番号、ブロック数、およびシステムでマウントされているパーティション数をリストします。 |
|
サポートされているSCSIデバイスに関する情報を提供します。 |
|
ベンダー、モデル、チャネル、ID、LUNデータなど、構成済SCSIデバイスに関する情報を提供します。 |
|
|
|
スラブ・メモリー使用量に関する詳細情報を提供します。 |
|
ソフトウェア割込み(softirq)に関する情報を表示します。softirqはハードウェア割込み(hardirq)に類似しており、カーネルが、ハードウェア割込み時に非常に時間を要する非同期処理を実行できるようにします。 |
|
システム起動時からのシステムに関する次の情報を記録します。
|
|
スワップ・デバイスに関する情報を提供します。サイズおよび使用量の単位はKBです。 |
|
システムに関する情報を提供し、カーネル機能の有効化、無効化または変更もできるようにします。書込み権限が設定されたファイルに新しい設定を書き込むことができます。第3.2.2項「カーネル・パラメータの変更」を参照してください。
次に示す
|
|
メッセージ( |
|
システム上にある使用可能で現在使用されている端末デバイスに関する情報を提供します。 |
|
仮想メモリーの使用量に関する情報を提供します。 |
詳細は、proc(5)
マニュアル・ページを参照してください。
3.2.2 カーネル・パラメータの変更
/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.d
ディレクトリに追加する必要があります。このディレクトリのファイルに加えた変更は、システムの再起動時、または次の例のようにsysctl --systemコマンドを実行した場合に有効になります。
#echo 'net.ipv4.ip_forward=1' > /etc/sysctl.d/ip_forward.conf
#grep -r ip_forward /etc/sysctl.d
/etc/sysctl.d/ip_forward.conf:net.ipv4.ip_forward=1 #sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0 #sysctl --system
* Applying /usr/lib/sysctl.d/00-system.conf ... net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0 * Applying /usr/lib/sysctl.d/50-default.conf ... kernel.sysrq = 16 kernel.core_uses_pid = 1 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.default.promote_secondaries = 1 net.ipv4.conf.all.promote_secondaries = 1 fs.protected_hardlinks = 1 fs.protected_symlinks = 1 * Applying /etc/sysctl.d/99-sysctl.conf ... * Applying /etc/sysctl.d/ip_forward.conf ... net.ipv4.ip_forward = 1 * Applying /etc/sysctl.conf ... #sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
詳細は、sysctl(8)
およびsysctl.d(5)
の各マニュアル・ページを参照してください。
3.2.3 システム・パフォーマンスを制御するパラメータ
次のパラメータは、システム・パフォーマンスの部分を制御します。
-
fs.file-max
-
すべてのプロセスに対するオープン・ファイルの最大数を指定します。ファイル・ハンドラ不足に関するメッセージが表示された場合は、このパラメータの値を増やします。
-
net.core.netdev_max_backlog
-
受信者のバックログ・キューのサイズを指定し、これは、カーネルでパケットが処理される速度より速くインタフェースでパケットが受信される場合に使用されます。このキューが小さすぎると、ネットワーク上ではなく、受信者側でパケットが失われます。
-
net.core.rmem_max
-
最大読取りソケット・バッファ・サイズを指定します。ネットワーク・パケットの喪失を最小限にするために、このバッファは受信ネットワーク・パケットを処理するのに十分な大きさにする必要があります。
-
net.core.wmem_max
-
最大書込みソケット・バッファ・サイズを指定します。ネットワーク・パケットの喪失を最小限にするために、このバッファは送信ネットワーク・パケットを処理するのに十分な大きさにする必要があります。
-
net.ipv4.tcp_available_congestion_control
-
使用可能なTCP輻輳回避アルゴリズムを表示します。
htcp
を実装するためにtcp_htcp
などの追加モジュールをロードする必要がある場合は、modprobeコマンドを使用します。 -
net.ipv4.tcp_congestion_control
-
使用するTCP輻輳回避アルゴリズムを指定します。
-
net.ipv4.tcp_max_syn_backlog
-
許可される未処理の
SYN
リクエスト数を指定します。ログにsynflood
警告が表示され、調査で、正規接続試行によってサーバーがオーバーロードであるために発生していることが示された場合は、このパラメータの値を増やします。 -
net.ipv4.tcp_rmem
-
TCPソケットに使用される、最小、デフォルトおよび最大受信バッファ・サイズを指定します。最大値は
net.core.rmem_max
より大きい値にできません。 -
net.ipv4.tcp_wmem
-
TCPソケットに使用される、最小、デフォルトおよび最大送信バッファ・サイズを指定します。最大値は
net.core.wmem_max
より大きい値にできません。 -
vm.swappiness
-
カーネルが、ロードしたページをシステム・ページ・キャッシュから削除するかわりに、ページをスワップに書き込む頻度を指定します。0に設定すると、メモリー不足の状態を回避する目的でのみスワッピングが発生します。100に設定すると、カーネルは頻繁にスワップします。デスクトップ・システムの場合、低い値に設定すると、待機時間が短縮され、システム応答が改善する場合があります。デフォルト値は60です。
注意このパラメータは、ハード・ディスクの電力消費を節約するために、ノートパソコンで使用します。サーバー・システム上でこの値を調整しないでください。
3.2.4 カーネル・パニックを制御するパラメータ
次のパラメータは、カーネル・パニックが発生する可能性がある状況を制御します。
-
kernel.hung_task_panic
-
(UEK R3のみ) 1に設定すると、カーネル・スレッドが
TASK_UNINTERRUPTIBLE
状態(D状態)でkernel.hung_task_timeout_secs
秒より長くスリープしている場合にカーネル・パニックが発生します。I/Oの完了を待機している間、プロセスはD状態のままです。この状態のプロセスは、中断または割込みできません。デフォルト値は0であり、この場合パニックは無効化されます。
ヒントハングしたスレッドを診断するには、カーネル・スレッドとユーザー・スレッドの両方のカーネル・スタックを表示する
/proc/
を調べます。PID
/stack -
kernel.hung_task_timeout_secs
-
(UEK R3のみ)警告メッセージが生成されるか、カーネル・パニックが発生する(
kernel.hung_task_panic
が1の場合)までに、ユーザーまたはカーネル・スレッドをD状態のままにできる期間を指定します。デフォルト値は120秒です。値を0に指定すると、タイムアウトを無効化できます。 -
kernel.nmi_watchdog
-
1 (デフォルト)に設定すると、カーネル内のマスク不可能な割込み(NMI)ウォッチドッグ・スレッドが有効になります。NMIスイッチまたはOProfileシステム・プロファイラを使用して未定義のNMIを生成する必要がある場合は、
kernel.nmi_watchdog
の値を0に設定します。 -
kernel.panic
-
パニック後、システムが自動的に自己リセットを行う前の秒数を指定します。
値が0の場合、システムはハングして、トラブルシューティングのためにパニックの詳細情報を収集できます。これはデフォルト値です。
自動リセットを有効にするには、0以外の値を設定します。メモリー・イメージ(
vmcore
)が必要な場合、Kdumpがこのイメージを作成するのに十分な時間を確保します。推奨値は30秒ですが、大規模システムの場合はより長い時間が必要です。 -
kernel.panic_on_io_nmi
-
0 (デフォルト)に設定すると、通常は修正不可能なハードウェア・エラーを示すI/Oチャネル・チェック(IOCHK) NMIをカーネルが検出した場合に操作の続行が試行されます。1に設定した場合は、システム・パニックが発生します。
-
kernel.panic_on_oops
-
0に設定すると、カーネルでoopsまたはBUG状態が発生した場合でも、システムは操作を続行しようとします。1 (デフォルト)に設定した場合は、パニックが発生する前にカーネル・ログ・デーモン
klogd
にoops出力を記録する時間を持たせるため、数秒遅延が発生します。OCFS2クラスタで、値を1に設定して、カーネルoopsが発生した場合に、システムでパニックを起こす必要があることを指定します。クラスタ操作に必要とされるカーネル・スレッドがクラッシュした場合、システムは自己リセットを行う必要があります。それ以外の場合、他のノードはあるノードの応答が遅れているのか、応答できないのかを区別できず、その結果クラスタ操作がハングする可能性があります。
-
kernel.panic_on_stackoverflow
-
(RHCKのみ) 0 (デフォルト)に設定すると、カーネルがカーネル・スタック内のオーバーフローを検出した場合に操作の続行が試行されます。1に設定した場合は、システム・パニックが発生します。
-
kernel.panic_on_unrecovered_nmi
-
0 (デフォルト)に設定すると、通常は修正不可能パリティまたはECCメモリー・エラーを示すNMIをカーネルが検出した場合に操作の続行が試行されます。1に設定した場合は、システム・パニックが発生します。
-
kernel.softlockup_panic
-
0 (デフォルト)に設定すると、NMIウォッチドッグ・スレッドがタイム・スタンプの更新を、
kernel.watchdog_thresh
で指定した秒数の2倍より長い時間にわたって失敗する原因となるsoft-lockupエラーをカーネルが検出した場合でも、操作の続行が試行されます。1に設定した場合は、システム・パニックが発生します。 -
kernel.unknown_nmi_panic
-
1に設定すると、カーネルが未定義のNMIを検出した場合にパニックが発生します。通常は、NMIスイッチを手動で押して未定義のNMIを生成します。NMIウォッチドッグ・スレッドでは未定義のNMIも使用されるため、
kernel.nmi_watchdog
を1に設定した場合はkernel.unknown_nmi_panic
の値を0に設定します。 -
kernel.watchdog_thresh
-
カーネルがhard-lockupおよびsoft-lockupエラーのチェックに使用するNMIパフォーマンス監視割込みの生成の間隔を指定します。CPUが割込みに対して
kernel.watchdog_thresh
で指定した秒数以上応答しない場合は、ハード・ロックアップ・エラーが考えられます。デフォルト値は10秒。値を0に指定すると、ロックアップ・エラーの検出を無効化できます。 -
vm.panic_on_oom
-
0 (デフォルト)に設定した場合、カーネルのOOM-killerによって、タスク・リスト全体がスキャンされ、パニックを回避するためにメモリー占有プロセスの中断が試行されます。1に設定すると、カーネル・パニックは発生しますが、特定の状況では存続できます。プロセスで、メモリー・ポリシーまたはcpusetを使用することによって特定のノードへの割当が制限され、これらのノードがメモリー不足の状態になった場合、OOM-killerによってあるプロセスを中断できます。他のノードのメモリーには空きがあり、システム全体としてはまだメモリー不足ではない可能性があるため、この場合パニックは発生しません。2に設定すると、OOM状態で常にカーネル・パニックが発生します。1および2の設定は、優先するフェイルオーバー・ポリシーに応じて、クラスタで使用することを目的としています。
3.3 /sys仮想ファイル・システムについて
カーネルは、/proc
に加えて/sys
仮想ファイル・システム(sysfs
)にも情報をエクスポートします。動的デバイス・マネージャudev
などのプログラムでは、/sys
を使用してデバイスやデバイス・ドライバ情報にアクセスします。ほとんどのハードウェア情報が/sys
に移動されたため、/sys
の実装によって/proc
ファイル・システムの整理に役立ちました。
/sys
ではカーネル・データ構造体と制御ポイントが公開されているので、ディレクトリが祖先ディレクトリにリンクしている状態の循環参照が含まれている可能性があります。その結果、/sys
に対して使用されたfindコマンドが終了しない場合があります。
3.3.1 /sysディレクトリの仮想ディレクトリ
次の表に、/sys
ディレクトリ階層の下にある有益な仮想ディレクトリを示します。
/sys
の下の有益な仮想ディレクトリ仮想ディレクトリ | 説明 |
---|---|
|
ブロック・デバイスのサブディレクトリが含まれます。例: |
|
サポート対象の各物理バス・タイプのサブディレクトリ( |
|
カーネルに登録されているデバイスの全クラスのサブディレクトリが含まれます。 |
|
システム上の全デバイスのグローバル・デバイス階層が含まれます。プラットフォーム・ディレクトリには、特定のプラットフォームに固有のデバイス・コントローラなどの周辺機器が含まれます。 |
|
ファームウェア・オブジェクトのサブディレクトリが含まれます。 |
|
カーネルにロードされた各モジュールのサブディレクトリが含まれます。ロードされたモジュールの一部のパラメータ値を変更できます。第5.4項「モジュール・パラメータについて」を参照してください。 |
power
|
システムの電源状態を制御する属性が含まれます。 |
詳細は、https://www.kernel.org/doc/Documentation/filesystems/sysfs.txtを参照してください。
3.4 システム日時設定の構成
システム時間はPOSIX時間標準に基づいています。この標準では、00:00:00座標世界時(UTC)、1970年1月1日木曜日以降に経過した秒数として時間が測定されます。1日は86400秒として定義され、うるう秒は自動的に減算されます。
システムの日時表現は、特定のタイムゾーンに一致するように設定できます。使用可能なすべてのタイムゾーンをリストするには、次を実行します。
# timedatectl list-timezones
使用可能なタイムゾーンから返された値に一致するようにシステム・タイムゾーンを設定するには、次のように実行できます。
# timedatectl set-timezone America/Los_Angeles
America/Los_Angeles
を有効なタイムゾーン・エントリで置き換えます。
このコマンドは、/usr/share/zoneinfo/
内の適切なゾーン情報ファイルを指すように、/etc/localtime
からのシンボリック・リンクを設定します。この設定は、即座に反映されます。/etc/localtime
を使用して現在のシステム・タイムゾーンを検出する可能性がある長時間実行プロセスの中には、プロセスが再起動されるまでシステム・タイムゾーンの後続の変更を検出できないものがあります。
タイムゾーンは、主に表示目的またはユーザー入力の処理に使用されることに注意してください。タイムゾーンを変更しても、システム・クロックの時間は変更されません。TZ
環境変数を設定することで、任意のコンソールでシステム時間のプレゼンテーションを変更できます。たとえば、東京の現在の時間を確認するには、次のように実行できます。
# TZ="Asia/Tokyo
" date
timedatectlコマンドを単独で実行することで、システムの現在の日時構成を確認できます。
# timedatectl
Local time: Thu 2018-10-25 13:11:30 BST
Universal time: Thu 2018-10-25 12:11:30 UTC
RTC time: Thu 2018-10-25 12:11:17
Time zone: Europe/London (BST, +0100)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: yes
Last DST change: DST began at
Sun 2018-03-25 00:59:59 GMT
Sun 2018-03-25 02:00:00 BST
Next DST change: DST ends (the clock jumps one hour backwards) at
Sun 2018-10-28 01:59:59 BST
Sun 2018-10-28 01:00:00 GMT
システム時間を手動で設定するには、timedatectl set-timeコマンドを使用します。たとえば、次のコマンドを実行できます。
# timedatectl set-time "2018-10-28 01:59:59
"
このコマンドは、現在設定されているシステム・タイムゾーンを想定して指定された時間に基づいて現在のシステム時間を設定します。このコマンドは、システムのリアル・タイム・クロック(RTC)も更新します。
正確な時間管理のためにネットワーク時間の同期を使用するようにシステムを構成することを検討してください。これは、高可用性を設定する場合、またはネットワークベースのファイルシステムを使用するときに特に重要です。
NTPサービスを構成する場合、次のコマンドを実行してNTPを有効にできます。
# timedatectl set-ntp true
このコマンドは、chronyd
サービスを有効にし、起動します(使用可能な場合)。