Como executar o script na primeira inicialização?

5

Eu preciso executar algum script bash apenas uma vez na primeira inicialização (após a instalação do sistema operacional) da minha máquina do CentOS Este script deve executar o antes de iniciar o serviço de rede (porque esse script alterará a configuração da rede) Como posso registrar meu script para ser executado antes do início do serviço de rede?

    
por Dima 15.03.2011 / 18:00

2 respostas

11

Se você olhar para a linha "chkconfig" do /etc/init.d/network, verá que a rede tem uma prioridade inicial de "10".

/etc/init.d/yourscript:
#!/bin/bash
#
# yourscript  short description
# 
# chkconfig: 2345 9 20
# description: long description

case "$1" in
  start)
    Do your thing !!!
    chkconfig yourscript off
  ;;
  stop|status|restart|reload|force-reload)
    # do nothing
  ;;
esac

Em seguida, execute chkconfig yourscript on para que ele seja executado na inicialização. O chkconfig yourscript off dentro do script deve desativá-lo em qualquer inicialização subsequente.

Algumas versões do CentOS / RHEL / Fedora têm um programa de "firstboot" que você pode tentar usar, mas isso parece uma dor.

Tem certeza de que não é possível executar o script de reconfiguração de rede dentro de uma% post em um kickstart? É o que eu faço.

    
por 15.03.2011 / 18:07
3

Resposta simples: Cole em /etc/init.d (link simbólico para /etc/rc#.d ) & a primeira coisa que faz é verificar a presença de um arquivo: Se o arquivo existir, o script já foi executado (assim, exit). Caso contrário, execute o script e toque no arquivo.

Isso também permite excluir o arquivo para forçar o script a ser executado novamente mais tarde.

    
por 15.03.2011 / 18:04