Symlink作为Systemd服务中的WorkingDirectory


8

我有WorkingDirectory=/srv/ctr/current一个符号链接服务。

重新启动后,该服务似乎未接收到符号链接中的更改。错误日志报告/srv/ctr/releases/69为位置,但/srv/ctr/current指向/srv/ctr/releases/72。有什么办法可以让systemd接管新的目录更改吗?


你试过了systemctl daemon-reload吗?可能会触发重新读取符号链接。
morloch

@morloch是的,我尝试过。我正在运行的服务是resque。我想知道路径是否以某种方式存储在作业本身中。
Reed G. Law

3
尝试添加ExecStartPre=/bin/pwd -P到服务中,重新加载/重新启动服务并检查日志。至少那么您会知道它是
系统化的

@morloch起作用了,现在又以某种方式找到了正确的目录。
Reed G. Law

我遇到过同样的问题。SystemD将SymLink解析为实际路径并使用该路径。我没有找到禁用此行为的方法。我现在只是将我的东西移到了符号链接目标上,并在另一个方向上创建了一个新链接...
Martin Rauscher

Answers:


2

可能尝试添加:

Environment = PWD=/srv/ctr/current

(顺便说一句,很高兴看到其他人使用/srv/*他们的服务。)


旧问题,但想说这对我在Centos 8.1的systemd上有效,而@morloch的评论却没有。
Yoopergeek

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.