デーモンのサービスファイルを作成しています。変数(initスクリプトでは環境変数を使用しました)を使用して、実行するスクリプトのパラメーターを定義します。たとえば、2つのパラメーター$ PARAM1 $ PARAM2を使用したいとします。
[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=
実行されたプロセスの環境変数を設定します。変数割り当てのスペースで区切られたリストを取得します。このオプションは複数回指定できます。その場合、リストされているすべての変数が設定されます。同じ変数が2回設定されている場合、後の設定が前の設定をオーバーライドします。
Environment=PARAM1=123
Environment=PARAM2=444
OR
Environment=PARAM1=123 PARAM2=444
わかりませんが、中かっこ内で使用する必要があるかもしれません{}
:
--post-data=key1=${PARAM1}&key2=${PARAM2}