msm*_*114 12 linux boot cron scheduling
有没有办法在重新启动时制作/运行 bash 脚本(例如在 Debian/Ubuntu 中,因为那是我家里的 2 个盒子所拥有的)
另外,有没有推荐的做 cron 工作的指南?我对他们完全陌生(但他们会很有用)
小智 21
在 Ubuntu/Debian/Centos 上,您可以设置一个 cron 作业来运行 @reboot。这在系统启动时运行一次。使用 crontab -e 编辑 crontab 并添加如下例所示的行,例如
@reboot /path/to/some/script
Run Code Online (Sandbox Code Playgroud)
如果您寻找 cron,有很多资源可以使用。这个网站有几个很好的例子。
在许多*nix平台上启动时启动某些东西的另一种典型方法是(或者,我认为这可能会开始失宠——参见替代方案)将脚本放在一个目录中,这取决于特定的操作系统/发行版,可能是类似/etc/rc2.d, /etc/rc3.d, /etc/rc/rc3.d, 或类似的东西(不同的发行版使用不同的“运行级别”,这是数字的来源——请参阅下面的链接)。通常,这些也被符号链接到文件中或来自 的文件/etc/init.d,以便更容易地手动执行,并且它们在大多数 *nix 平台中采用“开始”和/或“停止”参数,以及“状态”、“重启”、在许多 linux 平台上等等。在这样的系统上,这些通常由init,inittab. 在 *BSD 系统上,类似概念有不同的风格,并且如上链接所示,有很多变体。
在上述样式中,例如,/etc/rc2.d(对于默认运行级别为 2 的系统)中的脚本通常以字母S或开头K,然后是两位数字。以 S 开头的脚本在启动时按字典顺序(通常转换为数字顺序)运行,进入级别 2,参数为“start”。关闭时,以 K 为前缀的脚本同样运行,参数为“停止”。
中/etc/init.d(或有时/etc/rc/init.d,或其他变体)中的文件命名时没有 S 和 K 前缀或数字编号。通常,各种 /etc/rc?.d 目录中的文件符号链接到真实文件,通常通过相对路径前缀引用../init.d/。
各种系统上存在各种实用程序来管理这些,以及打开和关闭事物等。 在 IRIX(至少从 IRIX 4 开始,如果我没记错的话),它曾经是一个名为 的工具chkconfig,它不会操作链接,但脚本会检查它们是否应该运行。我认为IRIX 是第一个拥有类似功能的操作系统。后来,在我曾经拥有的某些版本的 RedHat 中,有一个同名的工具,但它的行为有点不同,实际上是管理符号链接——看看chkconfig(8)我认为可能是相同(或非常相似)的版本就像我当时使用的那样。
在我可以访问的 Ubuntu 9.04 系统上,它看起来像是update-rc.d要运行的脚本。
如果你的系统上使用inittab中,你还可以添加的东西,直接出现-这对于东西,你想在引导不只是一次运行特别有用,但要积极监控(通过init)到respawn如果他们崩溃或终止。有关man inittab其他信息,请参阅系统上(如果有)的输出。和/或man init等等。有很多不同的风格,我(目前)对 Debian 或 Ubuntu 都不太熟悉,所以我不确定要指出什么,但希望这能给你一些起点.
crontob 中的 @reboot 部分对我来说是新的,但似乎它可能是一个有用的选项——尽管我建议 init 脚本对于很多事情都是可取的。但是,请参阅man 5 crontab有关可以在 cron 配置中放入什么内容的更多信息,以及如何告诉它运行内容以及何时运行(包括,假设使用 Vixie/ISC 版本的 cron [请参阅cron 历史记录] @reboot)。
我希望这会有所帮助。