| #!/sbin/openrc-run |
| # This script is based on the one created by Phil (bug #255329). |
| |
| depend() { |
| need logger |
| } |
| |
| SWATCHDOG_BINARY=${SWATCHDOG_BINARY:-/usr/bin/swatchdog} |
| SWATCHDOGRC=${SWATCHDOGRC:-/etc/swatchdogrc} |
| SWATCHDOG_TAILFILE=${SWATCHDOG_TAILFILE:-/var/log/syslog} |
| SWATCHDOG_LOGFILE=${SWATCHDOG_LOGFILE:-/var/log/swatchdog.log} |
| SWATCHDOG_ERRFILE=${SWATCHDOG_ERRFILE:-/var/log/swatchdog-err.log} |
| SWATCHDOG_SCRIPT=${SWATCHDOG_SCRIPT:-/run/swatchdog/swatchdog_script.pl} |
| |
| gen_script() { |
| local tailargs="" |
| if [ "${SWATCHDOG_TAILARGS}" ]; then |
| tailargs="--tail-args=\"${SWATCHDOG_TAILARGS}\"" |
| fi |
| ebegin "Generating swatchdog script from config" |
| ${SWATCHDOG_BINARY} --dump-script="${SWATCHDOG_SCRIPT}" \ |
| --use-cpan-file-tail ${tailargs} \ |
| --config-file "${SWATCHDOGRC}" $1 "${SWATCHDOG_TAILFILE}" |
| eend $? |
| } |
| |
| parse_full() { |
| gen_script --examine |
| ebegin "Parsing complete file once" |
| /usr/bin/perl ${SWATCHDOG_SCRIPT} 1>/dev/null |
| eend $? |
| } |
| |
| start() { |
| checkpath -d -q -m 0750 -o root:root /run/swatchdog |
| if [ "${PARSE_FULL}" == "YES" ]; then |
| parse_full |
| fi |
| gen_script --tail-file |
| ebegin "Starting swatchdog" |
| start-stop-daemon --start --quiet --background \ |
| --make-pidfile --pidfile /run/swatchdog/swatchdog.pid \ |
| --stdout ${SWATCHDOG_LOGFILE} --stderr ${SWATCHDOG_ERRFILE} \ |
| --exec /usr/bin/perl -- ${SWATCHDOG_SCRIPT} |
| eend $? |
| } |
| |
| stop() { |
| ebegin "Stopping swatchdog" |
| start-stop-daemon --stop --exec /usr/bin/perl \ |
| --pidfile /run/swatchdog/swatchdog.pid --quiet |
| eend $? |
| } |