rc.local,Cron 风格

作者:Shawn Powers

偶尔,作为经验丰富的 Linux 用户,我们会遇到一些我们从未知道存在,但却感到惊讶的简单事情。 无论是 Tab 自动补全,sudo !! (当你忘记输入 sudo 时),甚至是使用 ls 递归列出文件,最小的技巧都可能非常有用。 不久前,我就经历了这样的时刻。

大多数人都知道 rc.local 是一个文件,你可以在其中放置你希望在系统启动时运行的命令。 然而,有时 rc.local 脚本会被禁用,并且无法工作。 记住以特定用户身份启动特定程序的语法也可能很困难。 此外,在 rc.local 中包含长长的程序列表可能会变得很糟糕。 我才知道,cron 不仅支持定期执行命令,还可以在系统启动时启动程序!

一个普通的 crontab 条目看起来像这样


* * * * * /usr/bin/command

这会每分钟运行一次该命令。 有无数种变体可以获得非常具体的间隔,但直到最近,我才知道这五个字段还有其他选项。 以下是一个 crontab 条目,它会在每个小时的整点运行命令


@hourly /usr/bin/command

而且,还有更多:@annually@monthly@daily@midnight,以及对于本文最有趣的 @reboot。 如果你有一个像这样的 crontab 条目


@reboot /usr/bin/command

它将在系统启动时执行,并具有拥有 crontab 的人的所有权和权限! 我做了很多研究以确保它不仅在重新启动时,而且在冷启动时也能运行——是的,@reboot 术语只是意味着它在系统首次启动时运行一次。 我一直在使用它作为一个快速黑客来启动程序,而且效果非常好。

我知道 99.9% 的人已经知道了这个有趣的信息,但对于像我一样一直生活在黑暗中的 0.1% 的人,我向你展示一个为你系统管理员箭筒准备的锋利的新箭。 这是一个非常简单的技巧,但所有最好的技巧都是如此!

Shawn 是 Linux Journal 的副编辑,从一开始就从事 Linux 工作。 他对开源充满热情,并且热爱教学。 他还喝太多的咖啡,这经常在他的写作中体现出来。

加载 Disqus 评论