新贵可以处理configuration文件的符号链接吗?

我拥有版本控制下的所有新贵configuration文件。 我使用upstart的理想方式是从我的版本控制库(mercurial – 不是那么重要)创build软链接到/ etc / init,但是upstart无法看到作业。 如果我将文件从版本库目录复制到/ etc / init,一切都很好。

任何人都知道为什么暴发户无法处理符号甚至是硬链接?

谢谢

克里斯

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 

这有效地给你硬链接的目录。 Upstart会将conf文件视为其他任何文件,因为它们是/ etc / init的本地文件。 您的DVCS也会将它们视为回购站中的本地文件,因此它也会将其视为存储在其中的任何其他文件。 两全其美。

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

手动更新configuration使用

 $ initctl reload-configuration 

如前所述:

 initctl reload-configuration 

但是,如果您得到如下错误:

 initctl: Rejected send message, 1 matched rules; type="method_call", sender=":1.155" (uid=1000 pid=6177 comm="initctl reload-configuration ") interface="com.ubuntu.Upstart0_6" member="ReloadConfiguration" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init") 

你必须调用sudo:

 sudo initctl reload-configuration