/etc/init/<service>.confのファイルを使用してアップスタートサービスを作成するのに慣れています 完全に正常に機能します。私がしたいのは、/ etc /init.d/内のすべてのサービスが現在行っているのと同じ方法でタブ補完を行うことだけです。
sudo service xxを作成するときは、サービスの名前が表示されます。
そのオートコンプリートリストにアップスタートサービスを追加する方法はありますか?
承認された回答:
upstartを使用して標準デーモンを提供するすべてのパッケージは、/etc/init.dにシンボリックリンクを提供する必要があります Debianポリシーによる。したがって、sudo service name すでに動作します。 bash-completionがあることを確認してください 問題が発生した場合は、パッケージがインストールされます。
独自のアップスタートジョブを作成する場合は、シンボリックリンク/etc/init.d/your_job /lib/init/upstart-jobへ 他の新興企業がすでに行っているように。これにより、自分の仕事が同じように機能するようになります。
/etc/initには特別な起動ジョブがあります /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でテストしました。古いリリースにサポートが表示されない場合は、サポートが利用できない可能性があります(ただし、十分に新しいリリースにアップグレードすると、すぐにサポートを利用できるようになります)。