Atrasar o init de iniciar um serviço por um período de tempo?

2

Estou tentando instalar e executar um servidor NFS rudimentar. No momento, o servidor está configurado como um servidor NFS devido a uma solução alternativa para um problema de fornecedor que não suporta armazenamento em cluster conectado diretamente, o que estamos tentando fazer com que ele seja resolvido. O software do fornecedor é o Splunk. O recurso splunk que estamos usando requer que os arquivos estejam localizados no armazenamento compartilhado (o que para nós é / mnt / nfs até que eles suportem um sistema de arquivos em cluster real).

Atualmente, o servidor possui um sistema de arquivos GFS2 montado na inicialização (é o único servidor com o sistema de arquivos ativamente montado, portanto não deve haver problemas com o bloqueio). Fomos com o GFS2, então mudar para um sistema de arquivos em cluster é fácil, caso o fornecedor comece a suportá-lo. O NFS é configurado para montar o sistema de arquivos em / mnt / nfs, que a instalação do splunk não vê.

O Splunk é configurado para encontrar seus arquivos de configuração em / mnt / nfs. No entanto, eu estou correndo em um problema onde o daemon splunk começa antes do carregamento do nfs terminar, e porque ele não vê nada em / mnt / nfs ele começa a criar arquivos lá, e quando os arquivos desaparecem (nfs conclui a montagem do compartilhamento), craps.

O Splunk está configurado para ser executado no nível de execução 3, S90. O NFS é definido nos níveis de execução 2-5, S60. Existe alguma maneira de atrasar ainda mais a inicialização do processo de splunk?

    
por Matthew 12.09.2012 / 22:43

1 resposta

1

head /etc/init.d/nfs

#!/bin/sh
#
# nfs           This shell script takes care of starting and stopping
#               the NFS services.
#
# chkconfig: - 60 20
# description: NFS is a popular protocol for file sharing across TCP/IP \
#              networks. This service provides NFS server functionality, \
#              which is configured via the /etc/exports file.
# probe: true

head /etc/init.d/splunk

#!/bin/sh
#
# /etc/init.d/splunk
# init script for Splunk.
# generated by 'splunk enable boot-start'.
#
# chkconfig: 2345 90 60
# description: Splunk indexer service
#
RETVAL=0

Certifique-se de que o nível de prioridade inicial do Splunk (90) seja maior que o nível de prioridade inicial do NFS (60).

I am running into a problem where the splunk daemon starts before nfs is finished loading,

Se por algum motivo, o NFS não for iniciado com sucesso, eu faria isso usando um truque:

  1. Desligue o splunk:

    chkconfig splunk off
    
  2. Edite a função start() no script init do NFS para iniciar o Splunk depois que o NFS é iniciado com sucesso, algo assim:

    Antes:

    echo -n $"Starting NFS daemon: "
    daemon rpc.nfsd $RPCNFSDARGS $RPCNFSDCOUNT
    RETVAL=$?
    echo
    [ $RETVAL -ne 0 ] && exit $RETVAL
    

    Depois:

    echo -n $"Starting NFS daemon: "
    daemon rpc.nfsd $RPCNFSDARGS $RPCNFSDCOUNT
    RETVAL=$?
    echo
    [ $RETVAL -ne 0 ] && exit $RETVAL || /etc/init.d/splunk start
    

Tente.

    
por 13.09.2012 / 09:43

Tags