Service
如何在 systemd 服務文件中使用變數?
我正在為守護程序創建一個服務文件,並且我想使用變數(在我使用環境變數的初始化腳本中)為執行的腳本定義一些參數。例如,我想使用 2 個參數 $ PARAM1 $ 參數 2:
[Unit] Description=my daemon After=network.target [Service] ExecStart=/usr/local/bin/daemon1 PIDFile=/var/run/daemon1.pid EnvironmentVariable=PARAM1=123 EnvironmentVariable=PARAM2=444 ExecStartPre=-/usr/bin/wget -O - --post-data=key1=$PARAM1&key2=$PARAM2 http://192.168.1.2/log.php ExecStopPost=-/usr/bin/wget -O - --post-data=key1=$PARAM1 http://192.168.1.2/log.php Type=simple [Install] WantedBy=multi-user.target
不用說,這個例子是行不通的。systemd 可以實現這樣的目標嗎?什麼樣的 exec 命令參數化是可能的?
該指令是
Environment
,不是EnvironmentVariable
。Environment=
為執行的程序設置環境變數。採用空格分隔的變數賦值列表。可以多次指定此選項,在這種情況下,將設置所有列出的變數。如果同一個變數設置了兩次,後面的設置將覆蓋前面的設置。
Environment=PARAM1=123 Environment=PARAM2=444
或者
Environment=PARAM1=123 PARAM2=444
不確定,但您可能需要在大括號內使用它們
{}
:--post-data=key1=${PARAM1}&key2=${PARAM2}