Como instalar um aplicativo Linux em casos em que scripts de inicialização paralelos em execução são ativados ou desativados?

1

Desenvolvemos uma aplicação Linux para trabalhar em diferentes distribuições RedHat / SUSE. Espera-se que este aplicativo (ou seja, daemon) seja executado automaticamente na inicialização, portanto, colocamos nosso script de inicialização no diretório /etc/init.d/ e criamos links simbólicos nos diretórios de runlevel (../rc.d/rc5.d/, para instância). Se um usuário remover nosso aplicativo, nosso script de desinstalação removerá todos os nossos itens, incluindo os links simbólicos. Ele funciona bem se o sistema operacional não fornecer scripts paralelos em execução. Se a execução paralela estiver ativada, precisamos de outra solução. Por exemplo, no SLES 10, temos em / etc / sysconfig / boot:

# Run all scripts or rather start/stop all services
# which are independent from each other in parallel.

RUN_PARALLEL="yes"

Até onde entendemos, temos que registrar nosso script com o utilitário insserv. Nesse caso, o sistema analisa um cabeçalho de script e cria / remove links simbólicos por conta própria. Se for verdade, como organizar a instalação / desinstalação de nosso aplicativo para abordar o script de inicialização paralela e sequencial em execução? Parece que devemos nos comportar de maneira diferente quando a execução paralela está desativada ou ativada. No primeiro caso, devemos nos preocupar com links simbólicos. No segundo caso, devemos delegá-lo ao insserv. Essa abordagem é correta? Se é verdade, devemos analisar se a execução paralela está habilitada, verificando o / etc / sysconfig / boot? Não parece confiável porque em diferentes distribuições do Linux pode haver localização e parâmetros diferentes.

Qual é a melhor prática para instalação / desinstalação do aplicativo Linux que abrange tanto a inicialização paralela quanto a sequencial do sistema?

Obrigado,

    
por user31462 12.01.2010 / 11:29

1 resposta

2

deixe o insserv criar os links simbólicos para você. Ao usar o insserv, você também pode adicionar dependências ao seu cabeçalho de script para que o insserv saiba quando iniciar e parar seu script em um runlevel especial. isso é necessário para a execução sequencial e paralela. tente ser compatível com o lsb. aqui está um pequeno exemplo:

# Following lines are in conformance with LSB 1.2 spec
### BEGIN INIT INFO
# Provides:            your shoort app name here
# Required-Start:      what should start before your app, e.g. network
# Required-Stop:       what should stop before your app stops
# Default-Start:       2 3 4 5
# Default-Stop:        0 1 6
# Description:         longer about 
### END INIT INFO
    
por 12.01.2010 / 11:55