GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment définir des variables d'environnement pour un service systemd dans CentOS/RHEL 7

Question :Comment définir des variables d'environnement à utiliser avec un service systemd de MySQL Server ?

Il existe un certain nombre de méthodes différentes qui peuvent être utilisées pour définir des variables d'environnement pour un service systemd. La méthode utilisée peut varier selon la distribution Linux et la version de la distribution. Le manuel MySQL indique que la configuration du service se fait simplement comme (exemple uniquement) :

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

Méthode 1 - Utilisation de "systemd edit"

Il s'agit de la méthode préférée qui consiste à créer et/ou modifier un fichier de remplacement contenant les variables d'environnement. La commande pour créer/modifier le fichier de remplacement est :

# systemctl edit mysqld

Cela créera alors un répertoire (s'il n'existe pas) et créera un override.conf fichier qui contiendra les variables. par exemple

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

Le fichier et le répertoire de remplacement seront généralement :/etc/systemd/system/mysqld.service.d/override.conf

Méthode 2 - Ajouter plusieurs variables via un fichier

Cette méthode permet d'ajouter plusieurs variables d'environnement au service via un simple fichier.

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

Le ' ' au début de la valeur EnvironmentFile permet à systemd d'ignorer les erreurs si le fichier n'existe pas. Le fichier d'environnement contiendra simplement la liste des différentes variables au format nom=valeur. Par exemple :

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

Le fichier d'environnement peut être n'importe lequel, tel que défini par l'attribut EnvironmentFile dans le service, cependant, il peut être spécifique à la version et à la distribution de Linux. Certaines anciennes versions s'attendent à ce qu'il soit dans /etc/sysconf (pour les distributions basées sur Redhat) par rapport à /etc/default (pour les distributions basées sur Debian). Il s'agit de la méthode actuellement utilisée par les packages Oracle MySQL.

Méthode 3 - Ajouter directement la variable d'environnement

Il s'agit simplement d'ajouter un paramètre name=value dans le [Service] du fichier de service mysql.

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

L'environnement ' Le mot-clé ici est utilisé pour identifier quelle variable d'environnement est spécifiée. Dans le paramètre ci-dessus, la variable d'environnement est définie pour utiliser une bibliothèque malloc différente pour le serveur MySQL.


Cent OS
  1. Comment créer un fichier Kickstart pour CentOS/Fedora/RedHat (RHEL)

  2. Comment définir ou modifier le nom d'hôte dans CentOS 7 / RHEL 7

  3. Comment redémarrer le service réseau sur CentOS 8 ou RHEL 8

  4. Comment définir children-max pour le service udev dans CentOS/RHEL 7

  5. Comment contrôler la ressource (cgroup) avec systemd pour le groupe de processus utilisateur dans CentOS/RHEL 7

Comment installer le fichier bin dans RHEL 8 / CentOS 8 Linux

Comment activer Kdump sur RHEL 7 et CentOS 7

Comment installer/mettre à niveau Systemd sur RHEL/CentOS 7

Comment définir/modifier le nom d'hôte dans CentOS 8 / RHEL 8

Configurer le serveur Samba sur CentOS 8/RHEL 8 pour le partage de fichiers

CentOS / RHEL 7 :Comment vérifier l'état d'un service à l'aide de systemd