O Ubuntu inicia o X-windows a partir do GDM (para sistemas que usam o padrão ubuntu-desktop ) ou do KDM (para sistemas que usam kubuntu-desktop ).
Para executar um script antes da inicialização do GDM / KDM, você poderia
- Escreva seu próprio script Upstart para ser executado antes do GDM; ou
- Modifique seu script GDM do sistema para executar um script externo personalizado (por exemplo, seu script /etc/init.d/whereami ) como uma de suas tarefas iniciais.
O Ubuntu utiliza runlevels no estilo Debian: runlevel 1 é de usuário único, modo de recuperação; runlevels 2-5 são todos iguais (GUI multi-user); e, por padrão, o sistema é inicializado no nível de execução 2 .
O Ubuntu 9.10 usa o Upstart, que fornece scripts de inicialização de serviços em / etc / init . Os scripts init mais tradicionais em /etc/init.d e /etc/rc.d ainda estão disponíveis para serviços que não foram portados para scripts init estilo Upstart. , mas o GDM tem um. (Nota O Ubuntu 9.10 fornece /etc/init.d/gdm , mas não cria nenhum /etc/rcX.d links simbólicos para ele.)
A inicialização do GDM é controlada por / etc / init / gdm . Essas linhas na parte superior do script especificam quando iniciar e parar o GDM. Observe que não há especificação runlevel para iniciar serviços somente do GDM que devem ser iniciados primeiro.
start on (filesystem
and started hal
and tty-device-added KERNEL=tty7
and (graphics-device-added or stopped udevtrigger))
stop on runlevel [0156]
emits starting-dm
Veja man 5 init para documentação sobre os scripts do Upstart, e examine o seu arquivos / etc / init / *. conf do sistema para alguns exemplos. Veja também o início evento manpage:
Example
A service that wishes to be running whenever another service would be running, started before and stopped after it, might use:start on starting apache stop on stopped apache
A task that must be run before another task or service is started might use:
start on starting postgresql
Observe também que os scripts Upstart do GDM / KDM emitem um sinal iniciando-dm , que também pode ser útil.
Portanto, um script Upstart projetado para ser executado antes do GDM deve usar uma destas cláusulas início :
# run only when starting GDM
start on starting gdm
# run when starting GDM or KDM
start on (starting gdm
or starting kdm)
# run when starting any DM
# starting-dm is a custom event emitted by the GDM/KDM/etc scripts
start on starting-dm