Você provavelmente deve usar "exec ..." em vez de "script ... end script", para que o Upstart conheça o processo.
Outra questão pode ser que o trabalho está correndo com o plymouth ou um gerente de exibição ou algo assim. Certifique-se de que os gerenciadores de exibição estejam desabilitados e altere o start on runlevel [2345]
para start on filesystem and plymouth-ready
para que o plymouth não tente fazer coisas com seus gráficos enquanto o servidor x estiver sendo executado.