GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS/RHEL 7 で systemd サービスの環境変数を設定する方法

質問 :MySQL サーバーの systemd サービスで使用する環境変数を設定する方法は?

systemd サービスの環境変数を設定するために使用できる方法は多数あります。使用される方法は、Linux ディストリビューションおよびディストリビューションのバージョンによって異なる場合があります。 MySQL のマニュアルには、サービスのセットアップは次のように簡単に行われると記載されています (例のみ):

[Service]
LimitNOFILE=max_open_files
PIDFile=/path/to/pid/file
Nice=nice_level
LimitCore=core_file_limit

方法 1 – 「systemd edit」を使用する

これは、環境変数を含む上書きファイルを作成および/または編集するための推奨される方法です。上書きファイルを作成/編集するコマンドは次のとおりです:

# systemctl edit mysqld

これにより、ディレクトリが作成され (存在しない場合)、override.conf が作成されます。 変数を含むファイル。例

[Service]
Environment="TZ=time_zone_setting"
Environment="AUTHENTICATION_PAM_LOG=1"
Environment="LD_PRELOAD=/path/to/malloc/library"

通常、上書きファイルとディレクトリは次のようになります:/etc/systemd/system/mysqld.service.d/override.conf

方法 2 – ファイル経由で複数の変数を追加する

この方法では、単純なファイルを介して複数の環境変数をサービスに追加できます。

[Service]
LimitNOFILE=max_open_files
PIDFile=/path/to/pid/file
Nice=nice_level
LimitCore=core_file_limit
EnvironmentFile=-/etc/sysconf/mysqld

」 EnvironmentFile 値の先頭にある ‘ 文字は、ファイルが存在しない場合に systemd がエラーを無視できるようにするためのものです。環境ファイルには、名前=値の形式でさまざまな変数のリストが含まれているだけです。例:

LD_PRELOAD=/path/to/malloc/library
TZ=time_zone_setting
AUTHENTICATION_PAM_LOG=1

環境ファイルは、サービスの EnvironmentFile 属性で定義されている任意のファイルにすることができますが、Linux のバージョンとディストリビューションに固有のものにすることもできます。一部の古いバージョンでは、/etc/sysconf にあると想定されます (Redhat ベースのディストリビューションの場合) 対 /etc/default (Debian ベースのディストリビューションの場合)。これは、Oracle MySQL パッケージで現在使用されている方法です。

方法 3 – 環境変数を直接追加する

これは、mysql サービス ファイルの [Service] 領域に name=value 設定を追加するだけです。

[Service]
LimitNOFILE=max_open_files
PIDFile=/path/to/pid/file
Nice=nice_level
LimitCore=core_file_limit
Environment="LD_PRELOAD=/path/to/malloc/library"

環境」 ここでのキーワードは、指定されている環境変数を識別するために使用されます。上記の設定では、MySQL サーバーに別の malloc ライブラリを使用するように環境変数が定義されています。


Cent OS
  1. CentOS / Fedora / RedHat(RHEL)のキックスタートファイルを作成する方法

  2. CentOS / RHEL 7 :systemd でシリアル getty を構成する方法

  3. CentOS/RHEL 7 で SYSTEMD プロセスの CPU アフィニティを設定する方法

  1. CentOS 7 /RHEL7でホスト名を設定または変更する方法

  2. CentOS8またはRHEL8でネットワークサービスを再起動する方法

  3. CentOS/RHEL 7 および 8 で Systemd を使用してプロセスのリソース制限を設定する方法

  1. CentOS / RHEL 7 :マルチパス ディスクで ASM の udev ルールを設定する方法

  2. CentOS/RHEL 7 で udev サービスの children-max を設定する方法

  3. CentOS/RHEL 7 でユーザープロセスグループに対して systemd でリソース (cgroup) を制御する方法