Jsem zvyklý vytvářet začínající služby pomocí souboru v /etc/init/<service>.conf
a funguje to naprosto dobře, jediná věc, kterou bych chtěl, je mít dokončování záložek stejným způsobem, jako má každá služba v /etc/init.d/ právě teď.
Při psaní sudo service xx by se měl objevit název služby.
Existuje způsob, jak přidat služby pro začátečníky do tohoto seznamu automatického dokončování?
Přijatá odpověď:
Každý balíček, který poskytuje standardního démona pomocí upstart, musí poskytnout symbolický odkaz v /etc/init.d
podle zásad Debianu. Takže automatické dokončování pro sudo service name
již funguje. Ujistěte se, že máte bash-completion
pokud máte problémy.
Pokud vytváříte své vlastní počáteční úlohy, pak symbolický odkaz /etc/init.d/your_job
na /lib/init/upstart-job
stejně jako ostatní začínající práce již dělají. Vaše vlastní úlohy tak budou fungovat stejným způsobem.
V /etc/init
jsou speciální počáteční úlohy které nemají odpovídající záznam v /etc/init.d
. Ty jsou výjimkou. Ze zásad Debianu:
Výjimkou z tohoto pravidla jsou skripty nebo úlohy poskytované samotnou implementací init; takové úlohy mohou být vyžadovány pro implementaci specifický ekvivalent skriptů /etc/rcS.d/ a nemusí mít individuální shodu s init skripty.
Tyto výjimky aktuálně nefungují s bash-completion
. Můžete však použít start
, stop
, restart
a reload
přímo bez service
a automatické dokončování bude fungovat. Například sudo start shut
správně automatické doplňování. Normálně byste ale neměli potřebovat přímo volat počáteční úlohy, které nemají odpovídající init.d
vstup.
Poznámka:Testoval jsem to na Saucy. Pokud se podpora neobjeví ve starší verzi, možná tam není dostupná (ale brzy ji získáte, když upgradujete na dostatečně nové vydání).