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
cronse 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).