为什么在service命令中没有自定义新贵作业名称选项卡?


16

我习惯用文件创建新贵服务 /etc/init/<service>.conf并且它工作得非常好,我唯一想做的就是以/etc/init.d/中的每个服务现在都具有的方式来完成制表符补全。

编写sudo服务xx时,应显示服务名称。

有没有一种方法可以将新贵服务添加到该自动完成列表?


嗨,您尝试过吗?
rɑːdʒɑ

Answers:


25

每个使用upstart提供标准守护程序的软件包都必须/etc/init.d通过Debian策略提供符号链接。因此,自动补全已经可以了。如果遇到问题,请确保已安装软件包。sudo service namebash-completion

如果您要创建自己的暴发户作业,则请像其他暴发户作业一样进行符号链接。这将使您自己的工作以相同的方式工作。/etc/init.d/your_job/lib/init/upstart-job

中有一些特殊的新贵工作/etc/init,它们中没有对应的条目/etc/init.d。这些是例外。来自Debian政策:

该规则的一个例外是init实现本身提供的脚本或作业。/etc/rcS.d/脚本的特定于实现的等效项可能需要此类作业,并且它们可能与初始化脚本不一一对应。

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

注意:我在Saucy上对此进行了测试。如果在较旧的版本中没有提供支持,则可能在该版本中不可用(但是升级到足够新的版本时,您会很快获得支持)。


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.