Crontab 与 init.d 哪一个用于启动脚本?

Crontab 与 init.d 哪一个用于启动脚本?

我有一个脚本,可以在系统重启时启动我的 docker 服务并在 RHEL7.3 机器上启动我的容器。有两种方法对我有用:1) 将脚本添加到 rc.local 2) 将脚本路径添加到 crontab -e。

两者都有效,哪一个对我来说更好?

答案1

Crontab 的作用是定期安排任务,而不是在系统启动时启动服务。这样做是错误的。

使用rc.local会更好,但更好的是使用常规的 systemd 服务文件。

答案2

rc.local 脚本的优点是它在正常启动序列结束时运行。如果您需要首先启动大多数其他程序,那么 rc.local 是更好的选择。rc.local 的缺点是如果将其用于太多事情,其复杂性会迅速增加。

虽然 cron 可以完成这项工作,但它可能无法默认执行您想要的操作,并且会出现错误。其启动顺序也可能因系统而异。

通过编写自己的 systemd 单元或 init 脚本,可以更好地控制序列和错误处理。我认为这是“正确”的方法,它比 rc.local 和 cron 都有许多优势。

相关内容