Linux 启动期间的脚本编写:如何测试启动何时“完成”?

qua*_*ote 4 scripting linux boot

我有一个在 Debian 服务器上启动时运行的脚本。它运行得太早了,但我无法控制它什么时候发射。我可以强制脚本延迟自己的运行:

sleep 60
Run Code Online (Sandbox Code Playgroud)

...或者,或者,我可以尝试几次该操作,如下所示:

TESTRUN=0
ACTIONWORKED=0
while [ $ACTIONWORKED -eq 0 ] && [ $TESTRUN -le 5 ]; do
      # run the action i want
      # quick test if it worked
      # if yes, set ACTIONWORKED=1
      # if no, sleep 10
      # increment TESTRUN
done
Run Code Online (Sandbox Code Playgroud)

测试系统是否准备就绪的更好方法是什么? 该脚本将在系统运行期间的其他时间运行,因此需要进行测试以区分“booting-can't-do-this-yet”“not-booting-run-now”状态。我不希望它在每次脚本运行时都等待。


编辑: 感谢到目前为止的想法。如果您对已发布的内容有其他选择,请继续关注。

对于那些询问具体细节的人,我专门将他们排除在问题之外,以收集适用于一般 Linux 引导过程的答案。

假设一个“完全启动”的系统出现了登录提示(通过控制台、X 或其他任何方式)。

rh0*_*ium 5

我会看初始化级别。

这应该让你开始..

 [[ `/sbin/runlevel | cut -d " " -f 2` == 5 ]] && echo "Ready"
Run Code Online (Sandbox Code Playgroud)

HTH

  • 它是 debian,所以针对运行级别 2 进行测试会更合适。唔。如果我需要单模式,它就行不通,但我不确定这是一个问题。 (2认同)