Como fazer um script no init.d ser executado mais tarde

6

Um pacote instalado /etc/init.d/ccpd , que é um script executado na inicialização. Eu gostaria que este script fosse executado como último de todos os meus scripts de inicialização, como posso conseguir isso?

    
por Peter Smit 28.12.2011 / 12:14

2 respostas

5

Quando o computador é inicializado, ele não executa os scripts init.d diretamente. Em vez disso, dependendo do que é chamado de "runlevel", ele executa os scripts em /etc/rcN.d (onde N é o runlevel). Você pode determinar o nível de execução atual com o comando runlevel; o meu retorna 2 em operação normal. Isso significa que, quando o computador foi iniciado, ele executou os scripts em /etc/rc2.d. O conteúdo de rc2.d são apenas links simbólicos para scripts em /etc/init.d, nomeados de acordo com se devem ser iniciados ou parados, e a ordem em que devem ser executados.

Use o comando runlevel para descobrir em qual runlevel seu computador está (provavelmente 2), então olhe em /etc/rc2.d para um link chamado SNNccpd, que será um symlink para /etc/init.d/ccpd , e renomeie-o para S99zzzccpd - ou o que for necessário para ordenar após as outras entradas - que fará com que seja executado por último.

Há mais informações sobre scripts e níveis de execução init.d em link

    
por Randy Orrison 28.12.2011 / 13:11
-3

Em vez de colocá-lo como um serviço que sempre continua em execução, o que você pode fazer é removê-lo como um serviço de /etc/init.d

e faça um script e coloque-o em / root / bin ou / usr / local / bin

Dentro desse script,

#!/bin/bash sleep 300
#call your service and run it in background
/usr/bin/ccpd &

a inicialização continuará e suas coisas serão executadas após 5 minutos

Agora, o último passo é fazer com que seu script seja executado na inicialização adicione seu script ao / etc / fstab ou ao perfil

    
por Rajesh Pantula 28.12.2011 / 12:36

Tags