ファイルを使用してupstartサービスを作成するのに慣れており、/etc/init/<service>.conf
完全に正常に動作します。ただ、/ etc / init.d /のすべてのサービスが現在持っているのと同じ方法でタブ補完をしたいだけです。
sudoサービスxxを記述する場合、サービスの名前が表示されます。
そのオートコンプリートリストにupstartサービスを追加する方法はありますか?
ファイルを使用してupstartサービスを作成するのに慣れており、/etc/init/<service>.conf
完全に正常に動作します。ただ、/ etc / init.d /のすべてのサービスが現在持っているのと同じ方法でタブ補完をしたいだけです。
sudoサービスxxを記述する場合、サービスの名前が表示されます。
そのオートコンプリートリストにupstartサービスを追加する方法はありますか?
回答:
upstartを使用して標準デーモンを提供するすべてのパッケージは、/etc/init.d
Debianポリシーによってシンボリックリンクを提供する必要があります。そのため、すでにオートコンプリートが機能しています。問題がある場合は、パッケージがインストールされていることを確認してください。sudo service name
bash-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
。ただし、使用することができstart
、stop
、restart
およびreload
直接せずservice
、かつ自動補完が動作します。たとえば、sudo start shut
正しくオートコンプリートします。ただし、通常は、対応するinit.d
エントリがないupstartジョブを直接呼び出す必要はありません。
注:これをSaucyでテストしました。古いリリースにサポートが表示されない場合は、おそらくサポートが利用できません(ただし、十分に新しいリリースにアップグレードするとすぐにサポートされます)。