mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-25 16:31:13 +00:00
7185c5ec7d
On some systems I see the issue that crond dies after a few days. Simply letting procd respawn the process is a simple safety-net. Signed-off-by: Bruno Randolf <br1@einfach.org>
42 lines
846 B
Bash
Executable File
42 lines
846 B
Bash
Executable File
#!/bin/sh /etc/rc.common
|
|
# Copyright (C) 2006-2011 OpenWrt.org
|
|
|
|
START=50
|
|
|
|
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
|
|
|
|
loglevel="$(uci_get "system.@system[0].cronloglevel")"
|
|
|
|
[ -z "${loglevel}" ] || {
|
|
/sbin/validate_data uinteger "${loglevel}" 2>/dev/null
|
|
[ "$?" -eq 0 ] || {
|
|
echo "validation failed"
|
|
return 1
|
|
}
|
|
}
|
|
|
|
mkdir -p /var/spool/cron
|
|
ln -s /etc/crontabs /var/spool/cron/ 2>/dev/null
|
|
|
|
procd_open_instance
|
|
procd_set_param command "$PROG" -f -c /etc/crontabs -l "${loglevel:-5}"
|
|
for crontab in /etc/crontabs/*; do
|
|
procd_set_param file "$crontab"
|
|
done
|
|
procd_set_param respawn
|
|
procd_close_instance
|
|
}
|
|
|
|
service_triggers() {
|
|
procd_add_validation validate_cron_section
|
|
}
|