Я пишу небольшой глупый скрипт для отправки электронной почты людям при загрузке сервера (Debian Lenny). Прямо сейчас я настроил его как сценарий init.d с помощью update-rc.d, но затем я понял, что мог бы просто использовать вместо этого задания cron. Что лучше использовать cron jobs для чего-то вроде этого или init.d?
Я на самом деле не проверял, запускается ли сценарий во время загрузки, но он должен работать. Еще не пробовал перезагрузку, но основная проблема заключается в том, что мы случайным образом перезагружали сервер один раз и просто случайно выключили / выключили питание в другой раз, поэтому нам интересно, это сбои питания или что-то еще. По крайней мере, это даст нам знать, когда сервер перезагрузится.
Поскольку это звучит как сценарий run-and-be-done, я бы сказал, что /etc/rc.local или cron (time: @reboot) определенно лучший вариант.
С другой стороны, все, что останется демонизированным, обязательно должно иметь собственный сценарий инициализации. По крайней мере, чтобы убедиться, что он правильно выключился.
/etc/rc.local
запускается при каждой загрузке после выполнения всех остальных сценариев инициализации. Это был бы еще один простой в реализации вариант.
Cron - это система, основанная на времени. Есть много способов сделать это. В lenny вы можете использовать скрипт в /etc/rc.local. Этот файл будет запущен в конце процесса после запуска сети, необходимой для отправки почты.