以root身份在启动时运行命令


9

我需要在启动时以Xubuntu中的超级用户身份运行bash脚本。我不知道从哪里开始。我必须执行Arch Linux指南中所述的操作。该指南确切说:

在文件末尾添加以下内容:/etc/rc.sysinit

# Do my action
/etc/rc.d/do_my_action

/bin/dmesg >| /var/log/dmesg.log

但是我没有/etc/rc.sysinit/etc/rc.d/在Xubuntu的。我确定有相同的东西,对不对?

Answers:


9

您想要的文件是/etc/rc.local。该脚本将在引导过程附近或结束时运行。因此,此时一切都应该准备就绪。

但是,正如@ bodhi.zazen指出的那样,Upstart可能是您的最佳选择。检查一下

注1:在15.04及更高版本中,Ubuntu使用systemd而不是Upstart。因此,如果您想采用服务方法,请在此处通过@muru查看此答案

注意2:在16.10中/etc/rc.local,默认情况下没有,但是如果创建它并使它可执行(sudo chmod u+x /etc/rc.local),它将起作用,因为有一个systemd服务将其拉入(如果存在)。不要忘记exit 0在文件的末尾加上一行,以防止任何失败的命令导致整个启动过程挂起。


所以,我只是将代码放在这里?目前,该文件仅包含exit 0。如果我可以在启动时询问启动时rc.local文件系统是否准备就绪,以便也可以在某处为要运行的命令写日志?
lorenzo-s

听起来好像您正在尝试运行启动(初始化)脚本。Ubuntu使用新贵。rc.local将在启动时运行一个命令或一系列命令,可能不是您的最佳选择。您到底想做什么?
Panther

@ lorenzo-s:看我的编辑。
Scott Severance

您可能还会发现此答案很有
Takkat 2011年

1
好的,我解决了my_script/usr/local/bin转到的问题/usr/bin。我也能保存日志中/var/log使用my_script &>> /var/log/my_script。非常感谢你。
lorenzo-s
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.