我有一个需要在启动时运行的脚本,我使用 update-rc.d 设置了它,现在当我重新启动系统时,sudo reboot
系统会在启动过程中挂起。但是如果我手动重新启动系统,系统不会在重新启动时挂起。有人知道为什么会发生这种情况吗?
以下是我设置在启动时运行的脚本的过程:
- 创建了
collection.sh
位于/etc/init.d
- 执行
$ sudo update-rc.d collection.sh defaults 99
以创建必要的符号链接。
它的作用如下:
collection.sh
只需调用位于我的主目录中的另一个名为 的脚本start.sh
。然后start.sh
生成两个具有指定工作目录的新进程。它看起来像这样:
#!bin/bash
(cd path/to/working/dir; ./start_script1.sh && ./start_script2.sh)
start_script1.sh
应运行大约 24 小时,同时start_script2.sh
无限循环运行。
我遇到的问题是该系统可能需要重新启动,但是如果这些进程正在运行,则系统当前会在重新启动期间挂起。
以下是 update-rc 命令的输出:
Adding system startup for /etc/init.d/collection.sh ...
/etc/rc0.d/K99collection.sh -> ../init.d/collection.sh
/etc/rc1.d/K99collection.sh -> ../init.d/collection.sh
/etc/rc6.d/K99collection.sh -> ../init.d/collection.sh
/etc/rc2.d/S99collection.sh -> ../init.d/collection.sh
/etc/rc3.d/S99collection.sh -> ../init.d/collection.sh
/etc/rc4.d/S99collection.sh -> ../init.d/collection.sh
/etc/rc5.d/S99collection.sh -> ../init.d/collection.sh
您对我的问题有什么看法吗?如果我遗漏了任何有用的信息,请告诉我。