Sono abituato a creare servizi nuovi con un file in /etc/init/<service>.conf
e funziona perfettamente bene, l'unica cosa che vorrei è avere il completamento delle schede allo stesso modo di tutti i servizi in /etc/init.d/ in questo momento.
Quando si scrive sudo service xx dovrebbe apparire il nome del servizio.
C'è un modo per aggiungere servizi nuovi all'elenco di completamento automatico?
Risposta accettata:
Ogni pacchetto che fornisce un demone standard usando upstart deve fornire un collegamento simbolico in /etc/init.d
dalla politica Debian. Quindi completamento automatico per sudo service name
già funziona. Assicurati di avere il bash-completion
pacchetto installato in caso di problemi.
Se stai creando i tuoi nuovi lavori, allora link simbolico /etc/init.d/your_job
a /lib/init/upstart-job
come stanno già facendo gli altri lavori nuovi. In questo modo i tuoi lavori funzioneranno allo stesso modo.
Ci sono lavori speciali di upstart in /etc/init
che non hanno una voce corrispondente in /etc/init.d
. Queste sono un'eccezione. Dalla politica Debian:
Un'eccezione a questa regola sono gli script oi lavori forniti dall'implementazione init stessa; tali lavori possono essere richiesti per un equivalente specifico dell'implementazione degli script /etc/rcS.d/ e potrebbero non avere una corrispondenza uno a uno con gli script init.
Queste eccezioni attualmente non funzionano con bash-completion
. Tuttavia, puoi usare start
, stop
, restart
e reload
direttamente senza service
e il completamento automatico funzionerà. Ad esempio, sudo start shut
si completa automaticamente. Ma normalmente non dovresti aver bisogno di chiamare direttamente i lavori upstart che non hanno un init.d
corrispondente voce.
Nota:l'ho testato su Saucy. Se il supporto non viene visualizzato in una versione precedente, forse non è disponibile lì (ma lo riceverai presto quando esegui l'aggiornamento a una versione sufficientemente nuova).