Fir*_*ame 5 shell debian shell-script
我正在 Debian Squeeze 中创建一个启动脚本(从 rc.local 调用)。启动脚本检查文件中的变量值,将变量递减并将其写回文件,然后如果变量大于 0,则执行测试并重新启动系统。如果变量为 0 或小于 0,则不会重新启动系统。我的问题如下:假设我在几次测试后意识到测试中存在错误。有什么办法可以打破我设置的execute_test->reboot->repeat循环。在测试中加入“sleep 1000”或执行ps aux|grep可能会起作用,但我不确定在 rc.local 脚本运行之前我是否可以访问它们。如果我在后台而不是前台运行脚本怎么办?在这种情况下,当测试在后台运行时,我是否可以访问 bash 登录 shell 等?
COUNT=`cat $testFile|wc -l`
if [ $COUNT -gt 0 ];then
ARGS=`head -1 $testFile`
cd /testCode
/testCode/startTest.sh $ARGS
sed -i '1d' $testFile
echo "rebooting"
/sbin/reboot &
exit 0
fi
Run Code Online (Sandbox Code Playgroud)
我知道我提供的细节很少,因为我不确定需要哪些信息。我会根据需要更新问题。
更新:我进行了测试。我在测试完成之前收到登录提示。我曾经认为只有在 rc.local 执行完成后我才会得到登录提示。有人可以对此有所了解吗?
只需将 /sbin/reboot 替换为有条件重新启动
[ -r /noreboot ] || /sbin/reboot
Run Code Online (Sandbox Code Playgroud)
然后,如果您不想重新启动,只需触摸 /noreboot 就可以了,无论脚本当时在做什么,只要它尚未重新启动即可。
您还可以使用 livecd 启动系统,并在发现错误时注释掉 rc.local 中的重新启动行。
归档时间: |
|
查看次数: |
2594 次 |
最近记录: |