我有一个脚本,可以在系统重启时启动我的 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 都有许多优势。