summaryrefslogtreecommitdiff
path: root/core/opiealarm/opieatd
Side-by-side diff
Diffstat (limited to 'core/opiealarm/opieatd') (more/less context) (ignore whitespace changes)
-rwxr-xr-xcore/opiealarm/opieatd29
1 files changed, 22 insertions, 7 deletions
diff --git a/core/opiealarm/opieatd b/core/opiealarm/opieatd
index 3b9dc0e..fc2d421 100755
--- a/core/opiealarm/opieatd
+++ b/core/opiealarm/opieatd
@@ -2,21 +2,36 @@
timefile=/etc/resumeat
+trap exit 0 SIGTERM SIGINT SIGQUIT
+
+echo $$ >/var/run/opieatd.pid
+
mkdir -p /var/spool/at
[ -p /var/spool/at/trigger ] || mkfifo /var/spool/at/trigger
while true; do
- cat /var/spool/at/trigger | while read line; do
- FILE=`ls -1 /var/spool/at/[0-9]* | head -n1`
- echo "File = $FILE"
- if [ -z "$FILE" ]; then
+ while read </var/spool/at/trigger dummy; do
+ FILES=`ls /var/spool/at/[0-9]* 2>/dev/null`
+
+ if [ -z "$FILES" ]; then
echo "clear resume at"
echo "" >$timefile
else
- unixtime=`basename $FILE | cut -c1-10`
- echo "Datestring = $unixtime"
- echo "$unixtime" >$timefile
+ for i in "$FILES"; do
+ echo "File = $i"
+
+ unixtime=`basename $i | cut -c1-10`
+ pid=`basename $i | cut -c12-`
+
+ if [ -d /proc/$pid ]; then
+ echo "Datestring = $unixtime"
+ echo "$unixtime" >$timefile
+ else
+ rm -f $i
+ fi
+ done
fi
done
done
+exit 0