启动脚本有时会失败 - rc.local 虚拟机

启动脚本有时会失败 - rc.local 虚拟机

我添加了简单的一行:

python <path-to-my-script> &

到 /etc/rc.local,但我注意到从一台主机迁移到另一台主机后,脚本有时会失败。

我使用的是 KVM,虚拟机使用的是 Ubuntu 12.04 32 位。主机使用的是 Ubuntu 12.04 64 位,我使用的是 Live Migration(使用 Openstack 构建的私有云)。

我不知道这是 KVM/Libvirt 的错误,还是我在 Ubuntu 上做错了什么,或者是云软件的错误?

可能是 rc.local 错误吗?当我使用 rc.local 时我应该知道些什么,这可能是导致此行为的原因吗?

答案1

尝试在脚本命令前添加 10 秒暂停。有时 rc.local 运行得太快了……

例子:

...
# By default this script does nothing.
sleep 10 
python <path-to-my-script> &
exit 0

答案2

您首先应该检查您的程序是否崩溃了。最简单的方法是将其输出重定向到文件并稍后检查(可以将 /myprogram.log 替换为其他内容):

python <path-to-my-script> &>/myprogram.log &

另外,检查rc.local末尾是否有以下行

exit 0

并且它是可执行的。您可以使用 进行检查ls -la /etc/rc.local。它应该显示如下内容:

ls -la /etc/rc.local
-rwxr-xr-x 1 root root 629 Aug 10 19:41 /etc/rc.local

如果不是这种情况,您可以使它成为可执行文件sudo chmod +x /etc/rc.local

相关内容