/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でテストしました。古いリリースにサポートが表示されない場合は、サポートが利用できない可能性があります(ただし、十分に新しいリリースにアップグレードすると、すぐにサポートを利用できるようになります)。