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
@@ -4,2 +4,6 @@ timefile=/etc/resumeat
+trap exit 0 SIGTERM SIGINT SIGQUIT
+
+echo $$ >/var/run/opieatd.pid
+
mkdir -p /var/spool/at
@@ -8,6 +12,6 @@ mkdir -p /var/spool/at
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"
@@ -15,5 +19,15 @@ while true; do
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
@@ -22 +36,2 @@ done
+exit 0