需要确定linux / OSX何时完全初始化

时间:2012-01-18 19:04:28

标签: linux shell osx-lion

我需要一种shell脚本方式来确定远程linux / OSX何时完成所有/etc/init.d/*,以确定我选择运行的运行级别。

因为我知道我可以在我的网络上进入一个虚拟盒子,同时它仍在启动并运行/ bin / true或/ bin / ps之类的命令,这些命令不会在它需要的状态下进行。

基本上我需要

while [ ${INIT_STILL_RUNNING_ON_REMOTE_SYSTEN}  ]
do
   sleep 30
done
ssh remoteUser@remoteSystem:command

1 个答案:

答案 0 :(得分:4)

你可以把一个脚本放在你感兴趣的运行级别中,这是最后要运行的东西,首先要关闭的东西会触及一个文件以表明它已经运行。

例如,如果您创建了一个名为S99finished的脚本并将其放在运行级文件夹中,那么它将在该运行级别运行。关闭时,相应的K00finished将首先运行。

S99finished看起来像:

#!/bin/bash
touch ~/.init_finished

K00finished看起来像:

#!/bin/bash
if [ -e ~/.init_finished ]; then
   rm ~/.init_finished
fi

然后你的启动脚本将进行轮询直到~/.init_finished存在,此时它会以快乐的方式进行。

注意,启动脚本以root身份运行,因此使用主目录tilde会将其放在root的主目录中。这对你正在做的事情可能并不理想,但说明了这一点。将它放在/var/log或其他常见的民意调查中也同样容易。请记住,无论你坚持下去,它都必须拥有所有人的读取权限。