我正在创建一些脚本,这些脚本将被注册为在 CentOS 6.5 上的服务器启动时执行。
其中一个脚本有一个 while 循环,该循环会一直阻塞,直到在启动期间启动的另一个进程(init.d)的日志中找到成功启动消息。
如果我的脚本所依赖的这个服务从不将成功启动记录到其日志文件中,并且我的脚本永远挂在 while 循环中,这种特定情况是否会导致操作系统完全挂起并且永远无法启动? init.d 脚本是否有超时设置?
我的脚本已注册在 rc.local 文件上执行。
答案1
如果 init.d 脚本没有终止,正常系统启动将无限期中断。
一种常见的解决方案是在 while 循环中加入一个计数器,并在给定数量的 while 循环后退出并显示错误消息。如果你正在等待没有超时选项的外部命令,请查看这问题。