linux 程序在启动时不运行

linux 程序在启动时不运行

我有一些脚本:collection.sh start.sh script1.shscript2.sh.我将它们设置为在启动时运行,以便:

  • collection.sh来电start.sh
  • start.sh呼叫两者script?.sh

集合的设置如下:

$ cp collection.sh /etc/init.d/
$ update-rc.d collection.sh defaults 99

如果我手动运行collection.sh(即$ . /etc/init.d/collection.sh),那么一切都会按预期运行,但是如果我重新启动或完全关闭并启动计算机,则collection.sh会运行,但start.sh永远不会运行。

为了澄清这一点,下面是每个脚本的示例:

  • collection.sh:

    . /path/to/start.sh &
    
  • start.sh:

    ./script1.sh &
    ./script2.sh &
    
  • script1.sh/script2.sh:

    while :
    do
        #does some stuff here
        #yes this is an infinite loop
    done
    

我有打印语句已确认collection.sh启动(实际上两次)并且start.sh从未启动。

我也确认过,使用ps aux | grep collection.sh确实collection.sh完成了。

答案1

您可能遇到路径问题。

更改 start.sh 中的 PATH 或使用 start.sh 中的完整路径来启动 script[12].sh

您没有提及您正在使用哪个发行版(每个发行版都略有不同)——一种大锤方法有时是将行放入 /etc/rc.local 中。

相关内容