Systemd vs rc.local para um script de inicialização após a instalação? (completamente mãos livres)

1

Eu tenho um ISO do Servidor Ubuntu personalizado que responde a perguntas de instalação através de arquivos preseed e kickstart. Ele também instala .debs adicionais que eu coloquei no ISO durante a instalação real também. Isso tudo funciona bem.

Agora, preciso de uma maneira de executar um script na primeira inicialização para as necessidades de configuração. O script de pós-instalação não parece estar funcionando (no arquivo de kickstart). Estou reduzido a usar o systemd ou o arquivo rc.local (pelo menos eu acho que essas são minhas únicas opções ...).

Qual é o mais fácil para simplesmente começar um script que já viverá no ISO com absolutamente nenhuma mão no teclado? O Systemd parece precisar de mim para habilitar o serviço primeiro, o que não é aceitável (novamente, sem usar o teclado). Estou inclinado para rc.local, mas este post diz para não usá-lo: " Propósito e uso típico de /etc/rc.local ".

Devo ignorar esse aviso? Querendo saber se existem formas mais simples também.

    
por Thisisstackoverflow 23.03.2016 / 21:43

1 resposta

1

Eu segui o conselho do shvahabi aqui link . Basicamente, estou habilitando e usando o rc.local na caixa do Ubuntu. Rc.local normalmente não é usado no debian. É muito semelhante às chaves de execução de registro do Windows. Por fim, terei meu primeiro script de configuração de inicialização E o arquivo rc.local personalizado em um pacote deb personalizado que coloca os arquivos na caixa no momento da instalação (o deb customizado reside no próprio ISO). Então, a cada inicialização, o rc.local executará meu script e eu posso colocar um check-in para que ele seja executado somente na primeira inicialização.

Nota importante: edite e use "/etc/rc.local" para colocar uma linha para executar seu script ... NÃO "/etc/init.d/rc.local". O segundo é realmente controlado por outro pacote e não permitirá que você instale uma versão customizada dele a partir de um arquivo deb customizado durante a instalação. O único propósito da versão init.d é chamar o "/etc/rc.local" de qualquer maneira.

Eu não estou usando systemd ou upstart porque você precisa digitar comandos para iniciar os serviços primeiro. Isso precisava ser livre de mãos. No entanto, acredito que todos esses comandos fazem arquivos de link, mas eu não tive vontade de descobrir onde colocá-los. Dois arquivos em um pacote deb custom são mais fáceis.

    
por 24.03.2016 / 17:47