我有一些脚本:collection.sh
start.sh
script1.sh
和script2.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 中。