我正在为一个守护进程创build一个服务文件,并且我想使用variables(在init脚本中,我使用了环境variables)来为执行的脚本定义一些参数。 例如,我想用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=为执行的进程设置环境variables。 采用空格分隔的variables赋值列表。 这个选项可以被多次指定,在这种情况下,所有列出的variables都将被设置。 如果同一个variables设置了两次,后面的设置将覆盖较早的设置。
Environment=PARAM1=123 Environment=PARAM2=444
要么
Environment=PARAM1=123 PARAM2=444
不确定,但您可能需要在括号{}使用它们:
--post-data=key1=${PARAM1}&key2=${PARAM2}