为什么在服务命令中没有完成自定义新贵工作名称选项卡?

Jos*_*llo 16 bash upstart

我习惯于创建带有文件的新贵服务/etc/init/<service>.conf并且它工作得非常好,我唯一想要的就是以与 /etc/init.d/ 中的每个服务现在相同的方式完成选项卡。

在编写 sudo service xx 时,服务的名称应该出现。

有没有办法将新贵服务添加到该自动完成列表中?

Rob*_*sak 25

/etc/init.dDebian 政策要求每个使用 upstart 提供标准守护程序的软件包都需要提供符号链接。所以自动完成已经有效。如果遇到问题,请确保安装了该软件包。sudo service namebash-completion

如果您要创建自己的暴发户的作业,然后符号链接到像其他暴发户作业做了。这将使您自己的工作以相同的方式工作。/etc/init.d/your_job/lib/init/upstart-job

有一些特殊的暴发户工作,/etc/init其中没有相应的条目/etc/init.d。这些是个例外。来自 Debian 政策:

此规则的一个例外是由 init 实现本身提供的脚本或作业;此类作业可能需要特定于实现的 /etc/rcS.d/ 脚本等价物,并且可能与 init 脚本没有一一对应的关系。

这些例外目前不适用于bash-completion. 但是,您可以直接使用start、和stoprestartreload无需使用service,并且自动完成功能将起作用。例如,sudo start shut正确地自动完成。但是您通常不需要直接调用没有相应init.d条目的upstart 作业。

注意:我在 Saucy 上测试了这个。如果支持没有出现在较旧的版本中,则可能在那里不可用(但是当您升级到足够新的版本时,您很快就会得到它)。