2015-02-19 14 views
12

Sto provando a fare un controllo di sintassi su uno script di upstart usando init-checkconf. Tuttavia, quando lo eseguo, restituisce ERROR: version of /sbin/initctl too old.initctl troppo vecchio startstart assegno

Non ho idea di cosa fare, ho provato a reinstallare upstart ma non cambia nulla. Questo viene eseguito da un contenitore docker (ubuntu: 14.04) che potrebbe avere qualcosa a che fare con esso.

+0

Hai provato a fare un 'apt-get update' prima di reinstallare? –

+0

Ho fatto, aggiornamento, aggiornamento e quindi reinstallato ancora lo stesso errore. – lochlanna

+0

Hai trovato la soluzione? – ogur

risposta

8

Ho appena avuto lo stesso problema.

Guardando nel contenitore:

[email protected]:/# cat /sbin/initctl 
#!/bin/sh 
exit 0 

non ho ancora testato completamente, ma ho aggiunto il seguente al mio Dockerfile:

# Fix upstart 
RUN rm -rf /sbin/initctl && ln -s /sbin/initctl.distrib /sbin/initctl 

ho pensato this collegamento spiegato abbastanza bene:

All'avvio del contenitore Docker, viene eseguito solo il comando CMD. Gli unici processi che verranno eseguiti all'interno del contenitore sono il comando CMD e tutti i processi che genera. Ecco perché tutti i tipi di servizi di sistema importanti non vengono eseguiti automaticamente: devi eseguirli tu stesso.

Scavando intorno un po ', ho trovato un'immagine ufficiale di Ubuntu contenente una versione funzionante di parvenu: https://registry.hub.docker.com/_/ubuntu-upstart/

Problemi correlati