/etc/systemd

From Azupedia
Jump to navigation Jump to search

systemd-system.conf, system.conf.d, systemd-user.conf, user.conf.d - System and session service manager configuration files

SYNOPSIS

      /etc/systemd/system.conf, /etc/systemd/system.conf.d/*.conf,
      /run/systemd/system.conf.d/*.conf, /lib/systemd/system.conf.d/*.conf
      /etc/systemd/user.conf, /etc/systemd/user.conf.d/*.conf,
      /run/systemd/user.conf.d/*.conf, /usr/lib/systemd/user.conf.d/*.conf

DESCRIPTION

システムインスタンスとして実行される場合、systemd は設定ファイル system.conf と system.conf.d ディレクトリのファイルを解釈する。ユーザーインスタンスとして実行される場合、systemd は設定ファイル user.conf と user.conf.d ディレクトリのファイルを解釈する。構文の一般的な説明については systemd.syntax(7) を参照。

CONFIGURATION DIRECTORIES AND PRECEDENCE

デフォルトの設定はコンパイル時に定義されるため、設定ファイルはそのデフォルトから逸脱する必要がある場合にのみ必要となる。デフォルトでは、/etc/systemd/ にある設定ファイルには、管理者のガイドとしてデフォルトを示すコメントアウトされたエントリーが含まれている。このファイルを編集して、ローカルでのオーバーライドを作成することができる。

パッケージが設定をカスタマイズする必要がある場合、/usr/lib/systemd/*.conf.d/ や /usr/local/lib/systemd/*.conf.d/ に設定スニペットをインストールすることができる。メイン設定ファイルはどの設定ディレクトリよりも先に読み込まれ、最も低い優先順位を持つ。どの設定ディレクトリのファイルのエントリも、単一設定ファイルのエントリを上書きする。コンフィギュレーションサブディレクトリ *.conf.d/ 内のファイルは、どのサブディレクトリにあるかに関係なく、 ファイル名で辞書順にソートされる。複数のファイルに同じオプションが指定されている場合、単一の値しか受け付けないオプションでは、辞書順に新しいファイル名を持つエントリが優先される。値のリストを受け付けるオプションの場合、辞書順に並べられたファイルにある項目が優先される。

/etc/ にあるファイルはローカル管理者のために予約されており、管理者はこのロジックを使ってベンダーのパッケージによってインストールされる設定ファイルを上書きすることができる。これらのサブディレクトリのすべてのファイル名の前に、2桁の数字とダッシュを付けて、ファイルの順序を簡単にすることが推奨される。

ベンダーから提供された設定ファイルを無効にするには、/etc/ の設定ディレクトリに、ベンダーの設定ファイルと同じファイル名で /dev/null へのシンボリックリンクを置くことが推奨される方法である。

OPTIONS

すべてのオプションは、[Manager]セクションで設定される:

LogColor=, LogLevel=, LogLocation=, LogTarget=, LogTime=, DumpCore=yes, CrashChangeVT=no, CrashShell=no, CrashReboot=no, ShowStatus=yes, DefaultStandardOutput=journal, DefaultStandardError=inherit
基本的なマネージャ操作の様々なパラメータを設定する。これらのオプションは、それぞれのプロセスやカーネルのコマンドライン引数によって上書きされるかもしれない。詳しくは systemd を参照。
CtrlAltDelBurstAction=
ユーザーが2秒間に7回以上Ctrl-Alt-Deleteキーを押した場合に実行される動作を定義する。"reboot-force"、"poweroff-force"、"reboot-immediate"、"poweroff-immediate"、または "none "で無効にすることが可能である。デフォルトは "reboot-force "である。
CPUAffinity=
サービスマネージャの CPU アフィニティと、すべてのフォークされたプロセスの デフォルトの CPU アフィニティを設定する。空白文字またはカンマで区切られた CPU インデックスまたは CPU 範囲のリストを受け取る。CPU 範囲は、ダッシュで区切られた下位 CPU インデックスと上位 CPU インデックスで指定します。このオプションは複数回指定することができ、その場合、指定した CPU アフィニティマスクは統合される。空文字列を指定すると、マスクはリセットされ、それ以前に指定されたものはすべて無効になります。個々のサービスは、ユニットファイルの CPUAffinity= 設定を使用してプロセスの CPU アフィニティを上書きすることができる (systemd.exec(5) を参照)。
NUMAPolicy=
サービスマネージャの NUMA メモリポリシーと、フォークされた全てのプロセスのデフォルトの NUMA メモリポリシーを設定する。個々のサービスは、ユニットファイルの NUMAPolicy= 設定でデフォルトのポリシーを上書きすることができる、systemd.exec(5)を参照。
NUMAMask=
選択されたNUMAポリシーに関連付けられるNUMAノードマスクを設定する。デフォルトとローカル NUMA ポリシーは明示的な NUMA ノードマスクを必要とせず、オプションの値は空であることに注意。NUMAPolicy= と同様に、値はユニットファイル内で個々のサービスによって上書きすることができる。systemd.exec(5)を参照。
RuntimeWatchdogSec=, RebootWatchdogSec=, KExecWatchdogSec=
実行時および再起動時にハードウェア・ウォッチドッグを設定する。タイムアウト値を秒単位で指定する(「ms」、「min」、「h」、「d」、「w」を付けると、他の時間単位にもなる)。RuntimeWatchdogSec= が 0 以外の値に設定されている場合、ウォッチドッグハードウェア(/dev/watchdog または WatchdogDevice= で指定されたパス、またはカーネルオプション systemd.watchdog-device= )がプログラムされ、指定したタイムアウト時間内に連絡がなければ自動的にシステムがリブートされるようになる。システム管理者は、指定されたタイムアウト時間の半分の間に少なくとも1回はこのデバイスに連絡するようにする。この機能は、組み込みシステムやサーバーシステムで一般的なように、ハードウェアウォッチドッグデバイスが存在することが必要である。すべてのハードウェアウォッチドッグで、すべてのリブートタイムアウト値を設定できるわけではないが、その場合は、最も近いタイムアウトが選択されます。 RebootWatchdogSec=は、システムの再起動を要求されたときに、ハードウェアウォッチドッグを設定するために使用されるかもしれない。これは、クリーンリブートの試行がタイムアウトした場合でも、リブートを確実に実行するためのセーフティネットとして機能する。RebootWatchdogSec= のタイムアウトは、リブートの第二段階、すなわち、通常のサービスがすべて終了し、システムおよびサービスマネージャプロセス (PID 1) が systemd-shutdown バイナリに置き換わった後にのみ適用されることに注意すること。詳細は、bootup(7)を参照。シャットダウン操作の最初のフェーズでは、システムおよびサービスマネージャは実行されたままなので、RuntimeWatchdogSec=はまだ有効である。システムシャットダウンの最初のフェーズでタイムアウトを定義するには、shutdown.targetユニットの[Unit]セクションでJobTimeoutSec=JobTimeoutAction=を設定する。デフォルトでは、RuntimeWatchdogSec=は0(オフ)、RebootWatchdogSec=は10minに設定されている。 KExecWatchdogSec= は、リブート時ではなく、kexec の実行時にウォッチドッグを有効にするために追加で使用されるかもしれない。カーネルが kexec でウォッチドッグをリセットしない場合 (特定のハードウェアやドライバに依存します)、 RuntimeWatchdogSec= も同時に有効にしない限り、 kexec が成功した後にウォッチドッグを無効にできず、システムがリブートされる可能性があることに注意すること。このため、RuntimeWatchdogSec=も有効になっている場合にのみ、KExecWatchdogSec=を有効にすることを推奨する。これらの設定は、ハードウェア・ウォッチドッグが利用できない場合、何の効果もない。
WatchdogDevice=
ランタイムとシャットダウンのウォッチドッグタイマーが開き、使用するハードウェアウォッチドッグデバイスを設定する。デフォルトは、/dev/watchdogである。この設定は、ハードウェアウォッチドッグが使用できない場合は、何の効果もない。
CapabilityBoundingSet=
PID 1 とその子のケイパビリティバウンディングセットにどのCapabilityを含めるかを制御する。詳細については、 capabilities(7) を参照。

[1](3) によって読み込まれるような、ホワイトスペースで区切られたCapability名のリストを取る。リストされたCapabilityは、境界セットに含まれ、他のすべては削除される。能力のリストが ~ で始まっている場合、リストされた能力以外のすべてが含まれ、割り当ての効果が反転される。このオプションは、有効、許可、継承可能なCapabilityセット内のそれぞれのCapabilityにも影響することに注意すること。能力境界セットは、ユニットに対してCapabilityBoundingSet=指令を使用して個別に設定することもできるが、PID 1のために落とした能力を個々のユニットで取り戻すことはできず、永久に失われることに注意すること。

NoNewPrivileges=
Boolean引数をとる。true の場合、PID 1 とそのすべての子プロセスが execve(2) によって (例えば setuid や setgid ビット、ファイルシステムの機能によって) 決して新しい特権を得ることができないようにする。デフォルトは false である。汎用ディストリビューションは、一般的に setuid または setgid ビットを持つ実行ファイルに依存しているので、 このオプションを有効にすると正しく機能しなくなる。個々のユニットがこのオプションを無効にすることはできない。No New Privileges Flagも参照[1]
SystemCallArchitectures=
スペースで区切られたアーキテクチャ識別子のリストを受け取る。このシステムでシステムコールを呼び出すことができるアーキテクチャを選択する。例えば、64ビットx86-64システムでの32ビットx86バイナリの実行を禁止するなど、システム全体で非ネイティブ・バイナリの呼び出しを無効にする効果的な方法として使用できる。このオプションはシステム全体で動作し、ユニットファイルの SystemCallArchitectures= 設定と同様の働きをします。詳細は systemd.exec(5) を参照。この設定のデフォルトは空のリストで、この場合、アーキテクチャに基づくシステムコールのフィルタリングは適用されない。既知のアーキテクチャ識別子は "x86", "x86-64", "x32", "arm" と特別な識別子である "native" である。後者はシステムのネイティブアーキテクチャ(より具体的には、システムマネージャーがコンパイルされたアーキテクチャ)に暗黙のうちにマッピングされる。この設定を "native"にすると、ネイティブでないバイナリの実行が禁止される。バイナリがこの設定にないアーキテクチャのシステムコールを実行すると、SIGSYSシグナルで即座に終了される。
TimerSlackNSec=
PID 1 のタイマースラックをナノ秒単位で設定する。サービスユニット内の TimerSlackNSec= 設定などで個別に上書きされない限り、実行中の全てのプロセスで継承される (詳細は systemd.exec(5) を参照)。タイマースラックは、システムタイマーによって引き起こされるウェイクアップの精度を制御する。詳しくは prctl(2) を参照。他のほとんどのタイムスパン定義とは対照的に、このパラメータは単位が指定されていない場合、ナノ秒の整数値を取ることに注意すること。通常の時間単位も理解される。
StatusUnitFormat=
name か description のどちらかを値として取る。name の場合、システムマネージャはステータスメッセージに、 Description= で設定されたより長く、より情報量の多い説明の代わりに、ユニット名を使用する。詳細は、systemd.unit(5)を参照。
DefaultTimerAccuracySec=
タイマーの単位のデフォルトの精度を設定する。これはタイマー単位の AccuracySec= 設定のグローバルなデフォルトを制御する、詳しくは systemd.timer(5) を参照。個々のユニットで設定された AccuracySec= は、特定のユニットに対するグローバルなデフォルトをオーバーライドする。デフォルトは 1min である。タイマー単位の精度は、PID 1 に設定されたタイマースラックにも影響されることに注意。
DefaultTimeoutStartSec=, DefaultTimeoutStopSec=, DefaultTimeoutAbortSec=, DefaultRestartSec=
TimeoutStartSec=, TimeoutStopSec=, TimeoutAbortSec=, RestartSec= でユニットごとに設定された、ユニットの起動、停止、中断のためのデフォルトのタイムアウトと、ユニットの自動再起動の間のスリープ時間の設定をする(サービスでは、ユニットごとの設定の詳細について systemd.service(5) を参照)。Type=oneshot のサービスが使われた場合、デフォルトでは無効になっている。サービス以外のユニットでは、DefaultTimeoutStartSec= がデフォルトの TimeoutSec= 値を設定する。DefaultTimeoutStartSec=およびDefaultTimeoutStopSec=のデフォルトは90秒である。DefaultTimeoutAbortSec=は、すべてのユニットがTimeoutStopSec=にフォールバックするようにデフォルトで設定されていない。 DefaultRestartSec=のデフォルトは100msである。
DefaultStartLimitIntervalSec=, DefaultStartLimitBurst=

StartLimitIntervalSec=StartLimitBurst= によってサービスごとに設定される、デフォルトのユニット開始レート制限を設定する。 サービスごとの設定の詳細については systemd.service(5) を参照。 DefaultStartLimitIntervalSec= のデフォルトは 10 秒である。DefaultStartLimitBurst= のデフォルトは 5 である。

DefaultEnvironment=
実行されるすべてのプロセスに渡されるマネージャ環境変数を設定する。スペースで区切られた変数割り当てのリストを受け取る。環境変数の詳細については、 environ(7) を参照。
           Example:
               DefaultEnvironment="VAR1=word1 word2" VAR2=word3 "VAR3=word 5 6"

           Sets three variables "VAR1", "VAR2", "VAR3".
DefaultCPUAccounting=, DefaultBlockIOAccounting=, DefaultMemoryAccounting=, DefaultTasksAccounting=, DefaultIOAccounting=, DefaultIPAccounting=
CPUAccounting=, BlockIOAccounting=, MemoryAccounting=, TasksAccounting=, IOAccounting=, IPAccounting= によってユニット毎に設定される、デフォルトのリソースアカウンティング設定を行う。ユニット毎の設定の詳細については systemd.resource-control(5) を参照。 DefaultTasksAccounting= はデフォルトで yesDefaultMemoryAccounting=yes になっています。 DefaultCPUAccounting= は、CPUアカウンティングを有効にしてもCPUコントローラーが必要ない場合(Linux 4.15+でリソースコントロールに統一階層を使用)、デフォルトがyesになり、それ以外の場合はnoになる。その他の3つの設定は、デフォルトでnoに設定される。
DefaultTasksMax=
ユニットごとの TasksMax= 設定のデフォルト値を設定する。詳しくは systemd.resource-control(5) を参照。この設定は、スライスユニットを除いて、リソースコントロール設定をサポートする全てのユニットタイプに適用される。デフォルトは kernel.pid_max=, kernel.threads-max=, root cgroup pids.max の最小値の 15% である。Kernel には kernel.pid_max= のデフォルト値があり、32 コア以上の場合はカウントするアルゴリズムがある。たとえば、デフォルトの kernel.pid_max= では、DefaultTasksMax= は 4915 になるが、他のシステムではもっと大きく、OS コンテナではもっと小さくなる可能性がある。
DefaultLimitCPU=, DefaultLimitFSIZE=, DefaultLimitDATA=, DefaultLimitSTACK=, DefaultLimitCORE=, DefaultLimitRSS=, DefaultLimitNOFILE=, DefaultLimitAS=, DefaultLimitNPROC=, DefaultLimitMEMLOCK=, DefaultLimitLOCKS=, DefaultLimitSIGPENDING=, DefaultLimitMSGQUEUE=, DefaultLimitNICE=, DefaultLimitRTPRIO=, DefaultLimitRTTIME=
これらの設定は、ユニットによって実行されるプロセスの様々なデフォルトのリソース制限を制御する。詳しくは setrlimit(2) を参照。これらの設定は、対応する LimitXXX= ディレクティブを使って個々のユニットで上書きすることができ、同じパラメータシンタックスを受け付ける。これらのリソースリミットはあくまでユニットのデフォルトであり、サービスマネージャプロセス (例: PID 1) 自体には適用されないことに注意すること。
DefaultOOMPolicy=
Linux Out-Of-Memory (OOM) キラーによって強制終了されるプロセスに対応するための デフォルトのポリシーを設定する。この設定は、ユニットごとの OOMPolicy= 設定に対して、グローバルなデフォルトを選ぶために使われる。詳しくは systemd.service(5) を参照。このデフォルトは Delegate= がオンになっているサービスには使われないことに注意すること。

SEE ALSO

systemd, systemd.directives(7), systemd.exec(5), systemd.service(5), environ(7), capabilities(7)

NOTES

  1. "No New Privileges Flag".

External Link