Execute um script init personalizado sempre antes do lightdm.conf

1

Eu tenho um script firstboot /etc/init/firstboot.conf que inicia em "filesystem". Este arquivo cria alguns symlinks para algumas libs em / usr / lib

O problema é que o /etc/init/lightdm.conf também inicia em "sistema de arquivos".

Se eu retroceder, mountall.conf é o arquivo que emite o evento "filesystem" e quando esse evento é gerado, o lightdm.conf e o meu firstboot.conf personalizado tentam executar seus scripts, mas a ordenação não é garantida e você nunca pode dizer qual deles é executado primeiro. Agora eu quero sempre garantir que o firstboot.conf seja executado antes do lightdm.conf. Como posso garantir isso sem editar o lightdm.conf (eu sei que posso criar uma dependência emitindo um evento no meu firstboot.conf e modificar o lightdm.conf para iniciar o evento emitido, mas não quero fazer isso. Preciso de um melhor abordagem que lida apenas com o meu firstboot.conf personalizado !!)

    
por AGM 03.05.2014 / 02:43

2 respostas

1

Não há como impor a ordenação de dois trabalhos iniciantes que iniciam no mesmo evento, o evento filesystem neste caso, de acordo com o livro de receitas upstart . No entanto, você pode modificar sua tarefa% up_cart firstboot para ser executada antes que o evento filesystem seja emitido.

Por exemplo, se o seu script requer apenas que um determinado sistema de arquivos seja montado, você pode fazer depender apenas do montado evento para aquele sistema de arquivos:

start on mounted MOUNTPOINT=/usr

Isso deve fazer com que o script firstboot seja executado depois que o sistema de arquivos necessário estiver pronto, mas antes que o evento filesystem seja emitido. Modifique a variável MOUNTPOINT para ser o ponto de montagem do sistema de arquivos de /etc/fstab que seu script precisará para executar sua função.

Você também pode fazer com que o script firstboot seja executado antes do lightdm, se essa for a dependência que você deseja expressar, usando o evento starting e fazer seu script usar

start on starting lightdm
    
por Mike Miller 16.05.2014 / 22:09
0

Postar uma resposta porque não tenho karma suficiente para comentar:

start on mounted MOUNTPOINT=/usr

não é como fazer isso. Este evento só será emitido se o usuário tiver um sistema de arquivos / usr separado, o que é incomum.

start on starting lightdm

é a maneira perfeita de fazer isso. O evento inicial bloqueia o lightdm de continuar a iniciar até que seu trabalho tenha iniciado.

    
por CameronNemo 02.06.2014 / 06:15