X-Git-Url: https://git.archive.openwrt.org/?p=openwrt.git;a=blobdiff_plain;f=package%2Futils%2Fbusybox%2Ffiles%2Fcron;h=8f54527805ed44dd3048d98936617a5071eb038f;hp=465b1ab45b75a29e4ae0f06a3504e27736a2140b;hb=1cd654611f450bd2ce579590a9118e7c84712587;hpb=4d953d3a481dd847524eae78c7aae00153bc7efd diff --git a/package/utils/busybox/files/cron b/package/utils/busybox/files/cron index 465b1ab45b..8f54527805 100755 --- a/package/utils/busybox/files/cron +++ b/package/utils/busybox/files/cron @@ -3,16 +3,36 @@ START=50 -SERVICE_USE_PID=1 +USE_PROCD=1 +PROG=/usr/sbin/crond + +validate_cron_section() { + uci_validate_section system system "${1}" \ + 'cronloglevel:uinteger' +} + +start_service () { + [ -z "$(ls /etc/crontabs/)" ] && return 1 -start () { loglevel=$(uci_get "system.@system[0].cronloglevel") - [ -z "$(ls /etc/crontabs/)" ] && exit 1 + + [ -z "${loglevel}" ] || { + /sbin/validate_data uinteger "${loglevel}" + [ "$?" -eq 0 ] || { + echo "validation failed" + return 1 + } + } + mkdir -p /var/spool/cron ln -s /etc/crontabs /var/spool/cron/ 2>/dev/null - service_start /usr/sbin/crond -c /etc/crontabs -l ${loglevel:-5} + + procd_open_instance + procd_set_param command "$PROG" -f -c /etc/crontabs -l ${loglevel:-5} + procd_close_instance } -stop() { - service_stop /usr/sbin/crond +service_triggers() +{ + procd_add_validation validate_cron_section }