3 システム設定の構成
警告:
Oracle Linux 7は現在延長サポート中です。詳細は、Oracle Linux拡張サポートおよびOracleオープン・ソース・サポート・ポリシーを参照してください。
できるだけ早くアプリケーションとデータをOracle Linux 8またはOracle Linux 9に移行してください。
この章では、システムの構成設定を変更する際に使用できるファイルおよび仮想ファイル・システムについて説明します。
/etc/sysconfigファイルについて
/etc/sysconfigディレクトリには、システムの構成を制御するファイルが含まれています。このディレクトリの内容は、システムにインストールしたパッケージによって異なります。
/etc/sysconfigディレクトリには、次のようなファイルが含まれます。
-
atd -
atdデーモンに対して追加のコマンドライン引数を指定します。 -
authconfig -
様々な認証メカニズムおよびオプションを使用するかどうかを指定します。たとえば、エントリ
USEMKHOMEDIR=noは、ユーザーが最初にログインしたときのユーザー用ホーム・ディレクトリの作成を無効にします。 -
autofs -
デバイスを自動的にマウントしたり、自動マウンタの操作を制御するためのカスタム・オプションを定義します。
-
crond -
ブート時に引数を
crondデーモンに渡します。 -
firewalld -
起動時に引数をファイアウォール・デーモン(
firewalld)に渡します。 -
grub -
GRUB 2ブート・ローダーのデフォルト設定を指定します。このファイルは
/etc/default/grubへのシンボリック・リンクです。詳細は、GRUB 2ブートローダーの操作を参照してください。 -
init -
ブート・プロセス中のシステムの表示方法と機能を制御します。
-
keyboard -
キーボードを指定します。
modules(ディレクトリ)-
ブート時に追加モジュールをロードするためにカーネルで実行するスクリプトが含まれます。
modulesディレクトリ内のスクリプトは、拡張子が.modulesで、実行可能権限755が必要です。例として、uinputモジュールをロードするbluez-uinput.modulesスクリプトを参照してください。詳細は、ブート時にロードされるモジュールの指定を参照してください。 -
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)の各マニュアル・ページを参照してください。
/proc仮想ファイル・システムについて
/procディレクトリ階層内のファイルには、システム・ハードウェアおよびシステムで実行中のプロセスに関する情報が含まれています。カーネルの構成を変更するには、書込み権限が設定されている特定のファイルに書き込みます。
procファイル・システムの名前はOracle Solarisオペレーティング・システムの元の目的に由来し、これは、実行プロセス内部のデータ構造へのデバッグ・ツールによるアクセスを可能にすることでした。このインタフェースはLinuxによって追加され、カーネル内のデータ構造にアクセスできるように拡張されました。時間の経過とともに、/procは完全に無秩序になり、これを整理しようとしてsysfsファイル・システムが作成されました。詳細は、/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に関する情報が格納されています。
sudo 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デバイスがリストされます。
sudo 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)
.../procの下の仮想ファイルおよびディレクトリ
次の表に、/procディレクトリ階層の下の最も有益な仮想ファイルとディレクトリを示します。
表3-1 /procの下の有益な仮想ファイルおよびディレクトリ
| 仮想ファイルまたはディレクトリ | 説明 |
|---|---|
|
|
プロセスID(PID)と一致するプロセスに関する情報を提供します。ディレクトリの所有者とグループは、プロセスの所有者とグループと同じです。ディレクトリの下の有益なファイルは、次のとおりです。
|
|
|
メモリー・フラグメンテーションの診断に関する情報を提供します。 |
|
|
システムで使用可能な様々なバス( |
|
|
システムで使用中のリソース制御グループについての情報を提供します。 |
|
|
ブート時にカーネルに渡されるパラメータをリストします。 |
|
|
システムの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です。 |
|
|
システムに関する情報を提供し、カーネル機能の有効化、無効化または変更もできるようにします。書込み権限が設定されたファイルに新しい設定を書き込むことができます。カーネル・パラメータの変更を参照してください。
次に示す
|
|
|
メッセージ( |
|
|
システム上にある使用可能で現在使用されている端末デバイスに関する情報を提供します。 |
|
|
仮想メモリーの使用量に関する情報を提供します。 |
詳細は、proc(5)マニュアル・ページを参照してください。
カーネル・パラメータの変更
/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()システム・コールを処理するカーネル・コードはありません。
現在のカーネル設定をすべて表示するには:
sudo 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の引数として指定します。
sudo sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0
設定の値を変更するには、次の形式のコマンドを使用します。
sudo 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
sudo sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0
sudo 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)の各マニュアル・ページを参照してください。
システム・パフォーマンスを制御するパラメータ
次のパラメータは、システム・パフォーマンスの部分を制御します。
-
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です。
注意:
このパラメータは、ハード・ディスクの電力消費を節約するために、ノートパソコンで使用します。サーバー・システム上でこの値を調整しないでください。
カーネル・パニックを制御するパラメータ
次のパラメータは、カーネル・パニックが発生する可能性がある状況を制御します。
-
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の設定は、優先するフェイルオーバー・ポリシーに応じて、クラスタで使用することを目的としています。
/sys仮想ファイル・システムについて
カーネルは、/procに加えて/sys仮想ファイル・システム(sysfs)にも情報をエクスポートします。動的デバイス・マネージャudevなどのプログラムでは、/sysを使用してデバイスやデバイス・ドライバ情報にアクセスします。ほとんどのハードウェア情報が/sysに移動されたため、/sysの実装によって/procファイル・システムの整理に役立ちました。
ノート:
/sysではカーネル・データ構造体と制御ポイントが公開されているので、ディレクトリが祖先ディレクトリにリンクしている状態の循環参照が含まれている可能性があります。その結果、/sysに対して使用されたfindコマンドが終了しない場合があります。
次のリストに、/sysディレクトリ階層の下にある有益な仮想ディレクトリを示します。
-
blockブロック・デバイスのサブディレクトリが含まれます。たとえば:
/sys/block/sda。 -
busサポート対象の各物理バス・タイプのサブディレクトリ(
pci、pcmcia、scsi、usbなど)が含まれます。各バス・タイプの下にあるdevicesディレクトリには検出されたデバイスがリストされ、driversディレクトリには各デバイス・ドライバのディレクトリが含まれます。 -
classカーネルに登録されているデバイスの全クラスのサブディレクトリが含まれます。
-
devicesシステム上の全デバイスのグローバル・デバイス階層が含まれます。プラットフォーム・ディレクトリには、特定のプラットフォームに固有のデバイス・コントローラなどの周辺機器が含まれます。
systemディレクトリには、CPUやAPICなど、周辺機器以外が含まれます。virtualディレクトリには、仮想および擬似デバイスが含まれます。デバイス管理を参照してください。 -
firmwareファームウェア・オブジェクトのサブディレクトリが含まれます。
-
moduleカーネルにロードされた各モジュールのサブディレクトリが含まれます。ロードされたモジュールの一部のパラメータ値を変更できます。「モジュール・パラメータについて」を参照してください。
-
powerシステムの電源状態を制御する属性が含まれます。
詳細は、https://www.kernel.org/doc/Documentation/filesystems/sysfs.txtを参照してください。
システムの日時設定の構成
システム時間はPOSIX時間標準に基づいています。ここで、時間は1970年1月1日木曜日、00:00:00協定世界時(UTC)から経過した秒数として測定されます。1日は86400秒として定義され、うるう秒は自動的に減算されます。
システムの日時表現は、特定のタイムゾーンに一致するように設定できます。使用可能なすべてのタイムゾーンをリストするには、次を実行します。
sudo timedatectl list-timezones
使用可能なタイムゾーンから返された値に一致するようにシステム・タイムゾーンを設定するには、次を実行します。
sudo timedatectl set-timezone America/Los_AngelesAmerica/Los_Angelesを有効なタイムゾーン・エントリに置き換えます。
このコマンドは、/usr/share/zoneinfo/内の適切なゾーン情報ファイルを指すように、/etc/localtimeからのシンボリック・リンクを設定します。この設定は、即座に反映されます。/etc/localtimeを使用して現在のシステム・タイムゾーンを検出する可能性がある長時間実行プロセスには、プロセスが再起動されるまでシステム・タイムゾーンの後続の変更が検出されないことがあります。
タイムゾーンは、主に表示目的またはユーザー入力の処理に使用されます。タイムゾーンを変更しても、システム・クロックの時間は変更されません。TZ環境変数を設定することで、任意のコンソールでシステム時間の表示を変更できます。たとえば、東京の現在の時間を確認するには、次を実行します。
TZ="Asia/Tokyo" datetimedatectlコマンドを単独で実行することで、システムの現在の日時構成を確認できます。
sudo 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コマンドを使用します。たとえば、次のコマンドを実行できます。
sudo timedatectl set-time "2018-10-28 01:59:59"このコマンドは、現在設定されているシステム・タイムゾーンを想定して指定された時間に基づいて現在のシステム時間を設定します。このコマンドは、システムのリアル・タイム・クロック(RTC)も更新します。
正確な時間管理のためにネットワーク時間の同期を使用するようにシステムを構成することを検討してください。これは、高可用性を設定する場合、またはネットワークベースのファイル・システムを使用するときに特に重要です。
NTPサービスを構成する場合、次のコマンドを実行してNTPを有効にできます。
sudo timedatectl set-ntp true
このコマンドは、chronydサービスを有効化および起動します(使用可能な場合)。