Wir zeigen Ihnen, wie Sie ** Variablen ** in der Einheitendefinitionsdatei verwenden, wenn Sie einen Dienst mit dem Befehl systemctl
starten.
Sie können Variablen mit "Umgebung" in der Einheitendefinitionsdatei angeben.
Erstellen Sie hier eine Unit-Definitionsdatei von test.service
und überprüfen Sie diese.
TEST_VALUE1
auf display1
und die Variable TEST_VALUE2
auf display2
.echo
, um die Variable anzuzeigen./etc/systemd/system/test.service
[Unit]
Description=TestService
[Service]
Environment=TEST_VALUE1=display1
Environment=TEST_VALUE2=display2
ExecStart=/bin/echo ${TEST_VALUE1} ${TEST_VALUE2}
Beginnen Sie mit systemctl start test
.
[root@CENTOS7 ~]# systemctl start test
[root@CENTOS7 ~]#
Überprüfen Sie mit journalctl -u test
.
[root@CENTOS7 ~]# journalctl -u test
--Die Protokolle beginnen am Tag 2019-12-29 17:19:15 JST,Ende am Tag 2019-12-29 18:07:04 JST.
29. Dezember 18:07:04 CENTOS7 systemd[1]: Started TestService.
29. Dezember 18:07:04 CENTOS7 echo[1398]: display1 display2
Die Werte der Variablen "TEST_VALUE1", "TEST_VALUE2", "display1", "display2" werden angezeigt.
Sie können EnvironmentFile
in der Unit-Definitionsdatei verwenden, um die Umgebungsvariablendatei anzugeben.
Erstellen Sie hier eine Unit-Definitionsdatei von test2.service
und überprüfen Sie diese.
/etc/sysconfig/test2
TEST_VALUE1=display1
TEST_VALUE2=display2
/ etc / sysconfig / test2
in EnvironmentFile
.echo
, um die Variable anzuzeigen./etc/systemd/system/test2.service
[Unit]
Description=Test2Service
[Service]
EnvironmentFile=/etc/sysconfig/test2
ExecStart=/bin/echo ${TEST_VALUE1} ${TEST_VALUE2}
Beginnen Sie mit systemctl start test2
.
[root@CENTOS7 ~]# systemctl start test2
[root@CENTOS7 ~]#
Überprüfen Sie mit journalctl -u test2
.
[root@CENTOS7 ~]# journalctl -u test2
--Die Protokolle beginnen am Tag 2019-12-29 17:19:15 JST,Ende am Tag 2019-12-29 18:19:45 JST.
29. Dezember 18:19:45 CENTOS7 systemd[1]: Started Test2Service.
29. Dezember 18:19:45 CENTOS7 echo[1444]: display1 display2
Die in / etc / sysconfig / test2
eingestellten Werte der Variablen TEST_VALUE1
und TEST_VALUE2
, display1
und display2
werden angezeigt.
Selbst wenn Sie "TEST_VALUE1 = $ PATH" usw. in der Umgebungsvariablendatei "/ etc / sysconfig / test2" angeben, wird "$ PATH" nicht wie unten gezeigt erweitert.
/etc/sysconfig/test2
TEST_VALUE1=display1
TEST_VALUE2=$PATH
[root@CENTOS7 ~]# systemctl start test2
[root@CENTOS7 ~]# journalctl -u test2
--Die Protokolle beginnen am Tag 2019-12-29 17:19:15 JST,Ende am Tag 2019-12-29 18:25:04 JST.
29. Dezember 18:25:04 CENTOS7 systemd[1]: Started Test2Service.
29. Dezember 18:25:04 CENTOS7 echo[1457]: display1 $PATH
das ist alles
Recommended Posts