如何在 Linux 中的特定时间运行命令
这篇讲的是,在Linux系统里如何为一条命令设定执行时限,时间一到就自动让它“收工”。文章的出发点很实际:作者用 `rsync` 传输大文件时,既不想干等20分钟,又不想手动中断进程。他发现系统里其实有现成的工具能轻松实现“定时关闭”。 文章核心介绍了两种解决方案。最常用的是 `timeout` 命令,它属于GNU coreutils包,几乎开箱即用。用法很简单,例如 `timeout 10s tail -f /var/log/pacman.log` 就能让 `tail` 命令只运行10秒。它还支持分钟(m)、小时(h)、天(d)等单位,并且可以通过 `-k` 参数设定一个超时的“宽限期”。 另一种是 `timelimit` 程序,功能比 `timeout` 更丰富,可以分别设置警告信号、终止信号及其时间点,为进程提供更优雅的退出过程。它需要在Debian或Arch等发行版中额外安装。 这两个工具对于那些可能长时间运行、甚至可能冻结系统的命令来说非常实用,能有效防止资源被无限占用。文章通过一个日常运维场景,清晰地展示了两种工具的用法和差异。