Главное отличие, которое вы ищете, заключается в том, что cron
он не работает постоянно. Как объяснено в man cron
:
cron then wakes up every minute, examining all stored crontabs, check‐
ing each command to see if it should be run in the current minute.
When executing commands, any output is mailed to the owner of the
crontab (or to the user named in the MAILTO environment variable in the
crontab, if such exists). The children copies of cron running these
processes have their name coerced to uppercase, as will be seen in the
syslog and ps output.
Другими словами, cron
будет запускаться только раз в минуту, и он проверит, должен ли он быть запущен. С другой стороны, ваш спящий режим потребует одновременной работы вашей фактической sleep
команды, вашей оболочки, вашего терминала и while
(или любого другого ) цикла.
Даже если бы они запускали одинаковое количество процессов, cron
было бы лучше. Это написано именно для этого людьми, которые, как правило, очень хорошо справляются со своей работой. Это должно сделать лучшую работу, чем простой цикл оболочки.