暴发户可以处理配置文件的符号链接吗?

Chr*_*ley 30 upstart ubuntu-10.04

我的所有新贵配置文件都在版本控制之下。我使用 upstart 的理想方法是从我的版本控制存储库(mercurial - 这并不重要)创建软链接到 /etc/init 但 upstart 无法看到作业。如果我将文件从存储库目录复制到 /etc/init.d ,一切都很好。

有人知道为什么 upstart 无法处理符号链接甚至硬链接吗?

谢谢

克里斯

Fab*_*obs 49

Upstart 使用 inotify 监视其配置目录,并在任何文件更改或添加新文件时重新加载配置。显然这不适用于符号链接。

手动更新配置使用

$ initctl reload-configuration
Run Code Online (Sandbox Code Playgroud)

  • 对我来说, /etc/init/ 中的符号链接可以工作,但是如果我更改符号链接后面的文件,则新贵工具不会重新读取该文件。我花了几个小时才发现符号链接是原因。它就像一个没人想要的缓存。 (2认同)

Ale*_*den 9

Upstart 不支持符号链接,因为它们可能指向在启动时未加载的分区上的文件

我在自己的项目中解决了这个问题,方法是将 conf 文件放在 /etc/init/myscripts 中,然后将其绑定到我的存储库中的目录。mount --bind /etc/init/myscripts ~/code/repo/initscripts.

将此添加到 /etc/fstab 并且绑定将是持久的:

/etc/init/myscripts  /home/me/code/repo/initscripts      none    bind
Run Code Online (Sandbox Code Playgroud)

这有效地为您提供了硬链接目录。Upstart 会将 conf 文件视​​为任何其他文件,因为它们是 /etc/init.conf 的本地文件。您的 DVCS 还会将它们视为存储库中的本地文件,因此它也会像对待存储在那里的任何其他文件一样对待它们。两全其美。