cron 和 systemd 有什么区别?

xri*_*tof 2 cron systemd

之间有什么区别cron和systemd?为什么我们不能只使用这两个中的一个?

ori*_*ion 6

它们是完全不同的东西。systemd是一个init系统(取代旧的 systemV init)。它通过以下方式扩展它:

  • 它统一了 init、login 和 initscripts,因此不同的发行版不再有自己的自定义脚本集来加载守护程序
  • 它跟踪服务(守护进程),以便在它们启动后可以控制它们,它还可以保持套接字进行通信并按需启动它们
  • init 在较旧的、更静态的设置上还可以,但是通过热插拔、易失性连接、多座不变量,systemd 更健壮一些。
  • 它通过找出依赖关系并并行启动独立的事物来并行化启动顺序。
  • 它知道并控制很多关于您的系统的信息 - init 只是启动了指定的脚本和登录界面,然后在关闭之前几乎什么都不做。这是让人们持怀疑态度的事情之一 - 感觉臃肿且难以定制或调试。无论如何 - 它监控进程,跟踪硬件变化,控制时间,区域设置和电源管理,安装存储和计时器。在这方面,cron如果您使用systemd. 然而,反过来就行不通了!

所以......如果你使用init,那么你需要cron或类似的东西来安排定期任务。如果您使用systemd,您仍然可以使用cron,但您也可以将规则重写为.timer文件,并systemd担心何时开始(而不是依赖单独的守护程序)。