在 /etc/rc.local 错误修复之前,首选的解决方法是什么?

在 /etc/rc.local 错误修复之前,首选的解决方法是什么?

我有一些需要在启动时运行的命令。我想把它们放在 /etc/rc.local 中,但这行不通(错误报告)。

我已经看到过许多不同的解决方法,我相信它们都有效,但我想知道是否有首选方法甚至最佳方法?我的意思是可以避免潜在并发症的方法,还是在这种情况下可以被视为最佳实践的方法?

我使用 Linux 是为了商业目的(因为 Windows 昨天坏掉了)。我热衷于避免引发比我修复的问题更多的问题。提前致谢。

答案1

/etc/rc.local除非您自己能确认它rc.local不起作用,否则您仍应使用。

在咨询 bugsquad 和 bugcontrol 的 micahg(IRC 用户)后,我们确认/etc/rc.local在 12.04 上可以按预期运行。由于您提到的错误是“未完成的”,因此它很可能是一个边缘情况错误,而不是一个可确认的错误。


我本来想对这个错误发表评论(但在与 micahg 交谈后没有这么做),内容如下(请注意,其中很多内容与该错误有关)

rc.localrc.local确实可以在全新 12.04 安装上启动。在多次修改文件和多次重启后,我确认它确实可以正常工作。

我有 30 个不同的命令,它们可以激活或停用某些服务,并运行 upstart 中没有的特定服务/etc/init.d/。这些命令中的每一个都在干净的 12.04 安装上正确运行(刚刚测试过)。

由于/etc/rc.local需要超级用户才能编辑,我不认为它会被桌面覆盖或覆盖,除非在某些情况下,图形驱动程序正在接管设置(或 GUI 接管设置,例如笔记本电脑上的背光或屏幕亮度,我倾向于在使用专有显卡的驱动程序和软件时发生这种情况),在这种情况下 /etc/rc.local 最有可能正在运行,但随后启动的 GUI 和相关软件在rc.local运行时会运行额外的命令和指令。

这需要使用大量不同的命令组合进行额外测试,但 rc.local 的预期行为确实出现在我运行的标准 12.04 和 11.04 测试中。

答案2

我意识到这是一篇旧帖子……但这有助于在 ubuntu vitualbox 中自动安装 windows 共享。我在命令前添加了 10 秒暂停。

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
sleep 10 
<script to be run>
exit 0

相关内容