Job spooling tools
65700164d9
1. It looks like the at command does not validate that it has succeeded to write all data before it makes the file executable (i.e on a disk full an empty file might get created). 2. After 60 minutes (run_time + CHECK_INTERVAL <= now), atd (approx line 750) starts to unlink the lockfile and retries the execution of the job, leaving us with this unfortunate loop. Reproducer: ATD_PID=$(ps -C atd -o pid=) QUEUE=a JOBNO=$(printf '%05x' 123) BAD_TIME=$(expr $(date +%s) / 60 - 61) CTM=$(printf '%08x' $BAD_TIME ) FILENAME=/var/spool/at/${QUEUE}${JOBNO}${CTM} touch $FILENAME chmod 0700 $FILENAME kill -HUP ${ATD_PID} sleep 0.5 ls -l $FILENAME rm -f $FILENAME Thanks to: Anders Blomdell |
||
---|---|---|
.gitignore | ||
56atd | ||
at-3.1.11-pam.patch | ||
at-3.1.12-fix_no_export.patch | ||
at-3.1.12-fix.patch | ||
at-3.1.12-makefile.patch | ||
at-3.1.12-nitpicks.patch | ||
at-3.1.12-nowrap.patch | ||
at-3.1.12-opt_V.patch | ||
at-3.1.12-pam.patch | ||
at-3.1.12-selinux.patch | ||
at-3.1.12-shell.patch | ||
at-3.1.13-help.patch | ||
at-3.1.13-mailwithhostname.patch | ||
at-3.1.13-makefile.patch | ||
at-3.1.13-nitpicks.patch | ||
at-3.1.13-pam.patch | ||
at-3.1.13-selinux.patch | ||
at-3.1.13-usePOSIXtimers.patch | ||
at-3.1.14-help.patch | ||
at-3.1.14-mailwithhostname.patch | ||
at-3.1.14-makefile.patch | ||
at-3.1.14-opt_V.patch | ||
at-3.1.14-pam.patch | ||
at-3.1.14-selinux.patch | ||
at-3.1.14-shell.patch | ||
at-3.1.14-usePOSIXtimers.patch | ||
at-3.1.14-wrong_format.patch | ||
at.spec | ||
atd.init | ||
atd.sysconf | ||
atd.systemd | ||
sources |