Назад | Перейти на главную страницу

Задержать запуск службы на какое-то время?

Я пытаюсь запустить и запустить элементарный сервер NFS. Прямо сейчас сервер настроен как сервер NFS из-за обходного пути для проблемы поставщика, не поддерживающей кластерное хранилище с прямым подключением, которое мы пытаемся решить. Программное обеспечение производителя - Splunk. Используемая нами функция splunk требует, чтобы файлы располагались в общем хранилище (которое для нас - это / mnt / nfs, пока они не будут поддерживать настоящую кластерную файловую систему).

В настоящее время на сервере установлена ​​файловая система GFS2 при загрузке (это единственный сервер с активно смонтированной файловой системой, поэтому проблем с блокировкой возникнуть не должно). Мы выбрали GFS2, поэтому легко перейти на кластерную файловую систему, если поставщик начнет ее поддерживать. NFS настроен для монтирования этой файловой системы в / mnt / nfs, которую видит установка splunk.

Splunk настроен на поиск файлов конфигурации в / mnt / nfs. Однако я сталкиваюсь с проблемой, когда демон splunk запускается до того, как nfs завершает загрузку, и поскольку он ничего не видит в / mnt / nfs, он начинает создавать там файлы, а затем, когда файлы исчезают (nfs завершает монтирование общего ресурса), splunk гадит.

Splunk настроен на работу на уровне запуска 3, S90. NFS установлен на уровнях выполнения 2-5, S60. Есть ли способ еще больше отложить запуск процесса splunk?

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

Убедитесь, что уровень приоритета запуска Splunk (90) больше, чем уровень приоритета запуска NFS (60).

Я столкнулся с проблемой, когда демон splunk запускается до завершения загрузки nfs,

Если по каким-то причинам NFS не запускается успешно, я бы сделал это с помощью трюка:

  1. Выключаем splunk:

    chkconfig splunk off
    
  2. Отредактируйте start() в сценарии инициализации NFS для запуска Splunk после успешного запуска NFS, примерно так:

    Перед:

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

    После:

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

Попробуйте.