Add restart command.
authorfredrik <fredrik@959494ce-11ee-0310-bf91-de5d638817bd>
Sun, 30 Oct 2005 01:45:46 +0000 (01:45 +0000)
committerfredrik <fredrik@959494ce-11ee-0310-bf91-de5d638817bd>
Sun, 30 Oct 2005 01:45:46 +0000 (01:45 +0000)
git-svn-id: svn+ssh://svn.dolda2000.com/srv/svn/repos/src/utils@423 959494ce-11ee-0310-bf91-de5d638817bd

autodlctl

index 1d0cdc1..78ef0e6 100755 (executable)
--- a/autodlctl
+++ b/autodlctl
@@ -68,6 +68,7 @@ function getnext
                echo "Configuration error, disabling $tag"
                cp "$outfile" "$d/.autodl/conferr"
                touch "$d/.autodl/disabled"
+               echo "$tag" >>"$HOME/dc/autodl/faulty"
            fi
        else
            echo "episode $curep of $tag done"
@@ -160,8 +161,10 @@ while [ "$done" != y ]; do
                else
                    tag="`basename "$d"`"
                fi
+               start=y
                if [ -e "$d/.autodl/disable" ]; then
                    echo "disabling $tag per user request"
+                   start=n
                    touch "$d/.autodl/disabled"
                    rm -f "$d/.autodl/disable"
                    if [ -r "$HOME/dc/autodl/run/$tag" ]; then
@@ -171,17 +174,31 @@ while [ "$done" != y ]; do
                    else
                        echo "could not find pid for $tag"
                    fi
-               elif [ ! -r "$d/.autodl/sexpr" ]; then
-                   touch "$d/.autodl/disabled"
-                   echo "$tag lacks sexpr" >&2
-                   echo "$tag" >>"$HOME/dc/autodl/faulty"
-               else
-                   if [ ! -e "$HOME/dc/autodl/run/$tag" ]; then
-                       if [ $((`date +%s` - $lastget)) -gt 20 ]; then
-                           getnext "$d" "$tag" &
-                           lastget=`date +%s`
-                           pid=$!
-                           echo "$pid" >"$HOME/dc/autodl/run/$tag"
+               fi
+               if [ -e "$d/.autodl/restart" ]; then
+                   echo "restarting $tag per user request"
+                   rm -f "$d/.autodl/restart"
+                   if [ -r "$HOME/dc/autodl/run/$tag" ]; then
+                       pid="`cat "$HOME/dc/autodl/run/$tag"`"
+                       echo "sending SIGUSR1 to $pid"
+                       kill -USR1 "$pid"
+                   else
+                       echo "could not find pid for $tag"
+                   fi
+               fi
+               if [ $start = y ]; then
+                   if [ ! -r "$d/.autodl/sexpr" ]; then
+                       touch "$d/.autodl/disabled"
+                       echo "$tag lacks sexpr" >&2
+                       echo "$tag" >>"$HOME/dc/autodl/faulty"
+                   else
+                       if [ ! -e "$HOME/dc/autodl/run/$tag" ]; then
+                           if [ $((`date +%s` - $lastget)) -gt 20 ]; then
+                               getnext "$d" "$tag" &
+                               lastget=`date +%s`
+                               pid=$!
+                               echo "$pid" >"$HOME/dc/autodl/run/$tag"
+                           fi
                        fi
                    fi
                fi