Upstart, ordem de execuçao dos scripts

Iniciado por Kriptolix, 01 de Fevereiro de 2011, 14:10

tópico anterior - próximo tópico

Kriptolix

ola pessoal, estou tentando adicionar a um script a inicializçao do sistema, percebi (apos buscar um pouco na internet) que existem algumas (varias) formas de faze-lo, eu compreendia razoavelmente bem o systemv, mas nao consegui pegar a logica do upstart ainda. o problema esta basicamente no fato de que esse script precisa (obrigatoriamente) rodar antes do GDM, e como o upsatart (pelo o que entendi) roda os scripts em paralelo nao sei como fazer pra ter a certeza disso.

percebi que os escripts sao rodados a partir do /etc/init.d e que quando atualizo sao copiados para os run levels, mas fora isso nao sei o que fazer pra definir co certeza a ordem, tambem sei que ha um numero de prioridade pra isso mas sei que ele nao é confiavel.

agradeço desde ja.
Ubuntu Linux 10.10

zekkerj

Se você colocar no inicio do seu script a sequência de comentários abaixo, o "update-rc.d" vai reconhecer e controlar os prefixos "SXXscript" e "KXXscript", de forma que os serviços vão iniciar na sequência correta.

#!/bin/sh

### BEGIN INIT INFO
# Provides:          <serviço>
# Short-Description: <Descrição do serviço>
# Required-Start:    <serviços que têm que iniciar antes>
# Required-Stop:     <serviços que têm que parar antes>
# Default-Start:     <runlevels em que tem que ser iniciado, normalmente 2 3 4 5>
# Default-Stop:      <runlevels em que tem que ser parardo, normalmente 0 6>
### END INIT INFO

Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Kriptolix

pois é, eu sei disso, mas como garantir que ele rode antes do gdm? eu devo adicionar ele como um serviço pre requisito do gdm? sera que isso nao prejudicara o boot de alguma forma se eu o fizer?
Ubuntu Linux 10.10

zekkerj

#3
Citarcomo garantir que ele rode antes do gdm?

P.ex. assim:

Citar#!/bin/sh

### BEGIN INIT INFO
# Provides:          <serviço>
# Short-Description: <Descrição do serviço>
# Required-Start:    $gdm
# Required-Stop:     <serviços que têm que parar antes>
# Default-Start:     <runlevels em que tem que ser iniciado, normalmente 2 3 4 5>
# Default-Stop:      <runlevels em que tem que ser parardo, normalmente 0 6>
### END INIT INFO

Depois é só executar o comando

sudo update-rc.d <seu-script> defaults

EDIT: Vc quer que ele inicie antes do gdm? Ah, desculpe, tinha entendido errado, achava que era depois.
Sim, nesse caso você vai ver qual outro recurso vc precisa que já esteja ativo (p.ex. rede) e alterar a linha "Required-Start" de acordo; depois vai fazer o mesmo com a linha "Required-Start" do gdm.

Com uma ressalva: o gdm é um serviço padrão, mexer no seu script pode ter alguma influência na hora da atualização do pacote.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D