0C3D
0C3D

Reputation: 348

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.

Upvotes: 12

Views: 2765

Answers (1)

mgor
mgor

Reputation: 230

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/

Upvotes: 10

Related Questions