Bash启动脚本?(Linux)


12

有什么方法可以在重新启动时制作/运行bash脚本(例如在Debian / Ubuntu中,因为那是我家里的两个盒子所拥有的)

此外,是否有推荐的指南进行cron工作?我是他们的新手(但它们会很有用)

Answers:


21

在Ubuntu / Debian / Centos上,您可以设置cron作业以运行@reboot。这在系统启动时运行一次。使用crontab -e编辑crontab并添加一行,如下例所示,例如

@reboot /path/to/some/script 

如果要寻找cron,有很多资源。这个站点有几个很好的例子。


7

在许多* nix平台上启动时启动内容的另一种典型方法是(或者曾经,我认为这可能开始受到人们的青睐-参见替代方法),以将脚本放入目录中,具体取决于特定的OS /发行版。像/etc/rc2.d/etc/rc3.d/etc/rc/rc3.d等(不同的发行版使用不同的“运行级别”,这是其中的数字来源于-见下面的链接)。通常,它们还会符号链接到中或从中指向文件/etc/init.d,以便更容易地手动执行,并且在大多数* nix平台中,它们都带有“开始”和/或“停止”参数,还有“状态”,“重新启动”,等在许多Linux平台上。在此类系统上,这些通常由initinittab。在* BSD系统上,类似概念的风格有所不同,并且如上所述,存在许多变化。

在以上样式中,例如/etc/rc2.d(对于默认运行级别为2的系统)中的脚本通常以字母S或开头K,然后以两位数字开头。以S开头的脚本在启动时以字典顺序(通常转换为数字顺序)运行,并进入第2级,其参数为“ start”。关闭时,以K为前缀的脚本将以“ stop”作为参数运行。

文件中的文件/etc/init.d(有时是/etc/rc/init.d,或其他版本)的命名不含S和K前缀或数字。通常,各种/etc/rc?.d目录中的文件符号链接到实际文件,通常通过相对路径prefix引用../init.d/

各种系统上也存在各种实用程序来管理这些实用程序,也可以打开和关闭它们,等等。在IRIX上(至少从IRIX 4开始,如果我的内存可用),它曾经是一个名为的工具chkconfig,不会进行操作链接,但是脚本会检查链接是否运行。我认为 IRIX是第一个具有类似功能的操作系统。后来,在我以前使用的某个版本的RedHat中,有一个同名的工具,但是它的行为有所不同,实际上是在管理符号链接-看看chkconfig(8)我认为可能是相同(或非常相似)的版本就像我过去那样

在我可以访问的Ubuntu 9.04系统上,update-rc.d该脚本似乎正在运行。

如果您在使用inittab的系统上,还可以直接在其中添加内容-这对于希望不仅在引导时运行一次,而且要主动监视(通过initrespawn是否有过运行的事物特别有用崩溃或终止。有关man inittab其他信息,请参阅系统上的输出(如果有)。和/或man init等。有很多不同的风格,并且我(目前)对Debian或Ubuntu并不十分熟悉,所以我不确定要指出什么,但是希望这可以为您提供一些起点。

crontob中的@reboot部分对我来说是新的,但似乎也可能是一个有用的选项-尽管我建议init脚本在许多方面都比较可取。但是man 5 crontab,有关如何在cron配置中放入什么内容以及如何告诉它运行内容以及何时运行的更多信息,请参见(包括假设使用Vixie / ISC版本的cron [参见cron历史记录 ] @reboot)。

希望对您有所帮助。

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.