从一个服务启动一段时间的初始化?

我试图让一个基本的NFS服务器启动并运行。 现在,服务器被configuration为NFS服务器,原因是解决了不支持直接附加集群存储的供应商问题,我们试图让他们解决这个问题。 供应商软件是Splunk。 我们正在使用的splunkfunction要求文件位于共享存储上(对于我们来说是/ mnt / nfs,直到它们支持真正的集群文件系统)。

目前,服务器在启动时安装了一个GFS2文件系统(它是唯一一个文件系统被主动安装的服务器,所以locking应该没有问题)。 我们使用GFS2,所以如果供应商开始支持它,切换到集群文件系统很容易。 NFS被configuration为在/ mnt / nfs上挂载该文件系统,这是splunk安装比看到的。

Splunk被configuration为在/ mnt / nfs中find它的configuration文件。 然而,我遇到了一个问题,splunk守护进程在nfs加载完成之前就开始了,因为它在/ mnt / nfs里什么都没有看到,所以开始在那里创build文件,然后当这些文件消失的时候(nfs完成共享)胡扯了。

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. closuressplunk:

     chkconfig splunk off 
  2. 编辑NFS初始化脚本中的start()函数,在NFS成功启动后启动Splunk,如下所示:

    之前:

     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 

试一试。