如何使用环境变量设置服务工作目录?这是一个服务配置示例:
[Service]
Environment=MYWORKINGDIR=/tmp
WorkingDirectory=${MYWORKINGDIR}
这会产生类似于 的错误not an absolute path
。在开头添加斜杠可以“修复”该错误,但仍然找不到路径:
[Service]
Environment=MYWORKINGDIR=/tmp
WorkingDirectory=/${MYWORKINGDIR}
这可能吗?文档不清楚哪些指令可以/不能使用环境变量。
http://www.freedesktop.org/software/systemd/man/systemd.exec.html
答案1
答案2
我发现的一种解决方法是将WorkingDirectory=指向符号链接,并在启动服务之前更改符号链接。
我知道这是不一样的;但解决了我试图用与你相同的方法解决的问题。
答案3
对于所有迟到者,我在这里有一个有用的解决方案:https://unix.stackexchange.com/a/742644/92366
简而言之,如果您不需要太复杂的东西,您可以使用:
ExecStart=/bin/bash -c "cd \"/path/${variable_subpath}/\";echo \"${PWD}\";"