Eles são coisas completamente diferentes. systemd
é um sistema init
(substitui o antigo systemV init
). Ele se estende das seguintes maneiras:
- Unifica init, login e initscripts, para que diferentes distribuições não tenham mais seu próprio conjunto personalizado de scripts para carregar daemons
- Ele rastreia os serviços (daemons) para que eles tenham controle sobre eles depois que eles começarem, ele também pode segurar os soquetes para comunitar e iniciá-los sob demanda
- o init estava ok nas configurações mais antigas e estáticas, mas com hotplugging, conexões voláteis, invariantes multiterminos, o systemd é um pouco mais robusto.
- Ele paraleliza a seqüência de inicialização, descobrindo as dependências e iniciando coisas independentes em paralelo.
- Ele conhece e controla muito sobre seu sistema - o init acabou de iniciar os scripts especificados e a interface de login e, em seguida, fez quase nada até o encerramento. Essa é uma das coisas que torna as pessoas céticas - ela se sente inchada e mais difícil de personalizar ou depurar. Enfim - monitora os processos, rastreia mudanças no hardware, controla o tempo, o local e o gerenciamento de energia, monta o armazenamento e os timers . Nesse sentido, você não precisa estritamente
cron
se estiver usandosystemd
. No entanto, não funciona ao contrário!
Então ... se você usa init
, então você precisa de cron
ou algo similar para agendar tarefas periódicas. Se você usar systemd
, ainda poderá usar cron
, mas também poderá reescrever as regras como .timer
files e deixar systemd
se preocupar quando iniciar as coisas (em vez de confiar em um daemon separado).