serviceコマンドでカスタムupstartジョブ名タブが完了しないのはなぜですか?


16

ファイルを使用してupstartサービスを作成するのに慣れており、/etc/init/<service>.conf完全に正常に動作します。ただ、/ etc / init.d /のすべてのサービスが現在持っているのと同じ方法でタブ補完をしたいだけです。

sudoサービスxxを記述する場合、サービスの名前が表示されます。

そのオートコンプリートリストにupstartサービスを追加する方法はありますか?


こんにちは、以前に試したことはありますか?
rɑːdʒɑ

回答:


25

upstartを使用して標準デーモンを提供するすべてのパッケージは、/etc/init.dDebianポリシーによってシンボリックリンクを提供する必要があります。そのため、すでにオートコンプリートが機能しています。問題がある場合は、パッケージがインストールされていることを確認してください。sudo service namebash-completion

独自のスタートアップジョブを作成している場合は、他のスタートアップジョブと同様のシンボリックリンクが既に実行されています。これにより、独自のジョブが同じように機能します。/etc/init.d/your_job/lib/init/upstart-job

/etc/init対応するエントリがない特別なupstartジョブがあります/etc/init.d。これらは例外です。Debianポリシーから:

この規則の例外は、init実装自体によって提供されるスクリプトまたはジョブです。このようなジョブは、/ etc / rcS.d /スクリプトの実装固有の同等物に必要であり、initスクリプトと1対1で対応していない場合があります。

現在、これらの例外はで機能しませんbash-completion。ただし、使用することができstartstoprestartおよびreload直接せずservice、かつ自動補完が動作します。たとえば、sudo start shut正しくオートコンプリートします。ただし、通常は、対応するinit.dエントリがないupstartジョブを直接呼び出す必要はありません。

注:これをSaucyでテストしました。古いリリースにサポートが表示されない場合は、おそらくサポートが利用できません(ただし、十分に新しいリリースにアップグレードするとすぐにサポートされます)。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.