Nous allons vous montrer comment utiliser ** variables ** dans le fichier de définition d'unité lors du démarrage d'un service avec la commande systemctl.
Vous pouvez spécifier des variables en utilisant ʻEnvironmentdans le fichier de définition d'unité. Ici, créez un fichier de définition d'unité detest.service` et vérifiez-le.
TEST_VALUE1 sur display1 et la variable TEST_VALUE2 sur display2./etc/systemd/system/test.service
[Unit]
Description=TestService
[Service]
Environment=TEST_VALUE1=display1
Environment=TEST_VALUE2=display2
ExecStart=/bin/echo ${TEST_VALUE1} ${TEST_VALUE2}
Commencez par systemctl start test.
[root@CENTOS7 ~]# systemctl start test
[root@CENTOS7 ~]#
Vérifiez avec journalctl -u test.
[root@CENTOS7 ~]# journalctl -u test
--Les journaux commencent au jour 2019-12-29 17:19:15 JST,fin au jour 2019-12-29 18:07:04 JST.
29 décembre 18:07:04 CENTOS7 systemd[1]: Started TestService.
29 décembre 18:07:04 CENTOS7 echo[1398]: display1 display2
Les valeurs des variables «TEST_VALUE1» et «TEST_VALUE2», «display1» et «display2» sont affichées.
Vous pouvez utiliser ʻEnvironmentFiledans le fichier de définition d'unité pour spécifier le fichier de variable d'environnement. Ici, créez un fichier de définition d'unité detest2.service` et vérifiez-le.
/etc/sysconfig/test2
TEST_VALUE1=display1
TEST_VALUE2=display2
est défini sur le fichier de variable d'environnement / etc / sysconfig / test2`./etc/systemd/system/test2.service
[Unit]
Description=Test2Service
[Service]
EnvironmentFile=/etc/sysconfig/test2
ExecStart=/bin/echo ${TEST_VALUE1} ${TEST_VALUE2}
Commencez par systemctl start test2.
[root@CENTOS7 ~]# systemctl start test2
[root@CENTOS7 ~]#
Vérifiez avec journalctl -u test2.
[root@CENTOS7 ~]# journalctl -u test2
--Les journaux commencent au jour 2019-12-29 17:19:15 JST,fin au jour 2019-12-29 18:19:45 JST.
29 décembre 18:19:45 CENTOS7 systemd[1]: Started Test2Service.
29 décembre 18:19:45 CENTOS7 echo[1444]: display1 display2
Les valeurs des variables «TEST_VALUE1» et «TEST_VALUE2», «display1» et «display2» définies dans «/ etc / sysconfig / test2» sont affichées.
Même si vous spécifiez TEST_VALUE1 = $ PATH etc. dans le fichier de variables d'environnement / etc / sysconfig / test2, $ PATH ne sera pas développé comme indiqué ci-dessous.
/etc/sysconfig/test2
TEST_VALUE1=display1
TEST_VALUE2=$PATH
[root@CENTOS7 ~]# systemctl start test2
[root@CENTOS7 ~]# journalctl -u test2
--Les journaux commencent au jour 2019-12-29 17:19:15 JST,fin au jour 2019-12-29 18:25:04 JST.
29 décembre 18:25:04 CENTOS7 systemd[1]: Started Test2Service.
29 décembre 18:25:04 CENTOS7 echo[1457]: display1 $PATH
c'est tout
Recommended Posts