Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

initctl too old upstart check

I am trying to do a syntax check on an upstart script using init-checkconf. However when I run it, it returns ERROR: version of /sbin/initctl too old.

I have no idea what to do, I have tried reinstalling upstart but nothing changes. This is being run from within a docker container (ubuntu:14.04) which might have something to do with it.

like image 817
lochlanna Avatar asked Feb 19 '15 00:02

lochlanna


1 Answers

I just ran into the same issue.

Looking in the container:

root@puppet-master:/# cat /sbin/initctl
#!/bin/sh
exit 0

I haven't tested it completly yet, but I added the following to my Dockerfile:

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

I thought this link explained it pretty good:

When your Docker container starts, only the CMD command is run. The only processes that will be running inside the container is the CMD command, and all processes that it spawns. That's why all kinds of important system services are not run automatically – you have to run them yourself.

Digging around some more, I found an official Ubuntu image containing a working version of upstart: https://registry.hub.docker.com/_/ubuntu-upstart/

like image 117
mgor Avatar answered Oct 31 '22 13:10

mgor