Özel uptart iş adları sekmesi neden hizmet komutunda tamamlanmıyor?


16

Ben bir dosya ile upstart hizmetler oluşturmak için alışkınım /etc/init/<service>.confve gayet iyi çalışıyor, istediğim tek şey sekme tamamlama /etc/init.d/ her hizmet şu anda olduğu gibi olmasıdır.

Sudo service xx yazarken, servisin adı görünmelidir.

Otomatik tamamlama listesine uptart hizmeti eklemenin bir yolu var mı?


Merhaba, daha önce denedin mi?
rɑːdʒɑ

Yanıtlar:


25

Uptart kullanarak standart bir daemon sağlayan her paketin /etc/init.dDebian politikası tarafından bir sembolik bağlantı sağlaması gerekir . Yani otomatik tamamlamasudo service nameZaten çalışır . Sorun yaşıyorsanız, bash-completionpaketin kurulu olduğundan emin olun .

Kendi uptart işlerinizi oluşturuyorsanız, symlink /etc/init.d/your_job için /lib/init/upstart-jobdiğer sonradan görme işler zaten yapıyoruz gibi. Bu, kendi işlerinizin aynı şekilde çalışmasını sağlayacaktır.

İçinde /etc/initkarşılık gelen bir girişi olmayan özel uptart işleri vardır/etc/init.d . Bunlar bir istisnadır. Debian Politikasından:

Bu kuralın bir istisnası, init uygulamasının kendisi tarafından sağlanan komut dosyaları veya işlerdir; bu tür işler /etc/rcS.d/ komut dosyalarının uygulamaya özel eşdeğeri için gerekli olabilir ve init komut dosyalarıyla birebir yazışmaları olmayabilir.

Bu istisnalar şu anda çalışmaz bash-completion. Ancak, kullanabileceğiniz start, stop, restartve reloaddoğrudan olmadan serviceve otomatik tamamlama çalışacaktır. Örneğin, sudo start shutdoğru otomatik olarak tamamlanır. Ancak normal olarak, karşılık gelen bir init.dgirişi olmayan uptart işlerini doğrudan çağırmanız gerekmez .

Not: Bunu Saucy'de test ettim. Destek eski bir sürümde görünmüyorsa, belki orada mevcut değildir (ancak yeterince yeni bir sürüme geçtiğinizde yakında alacaksınız).


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.