mirror of
https://github.com/arcan1s/queued.git
synced 2025-04-24 15:37:19 +00:00
Prerelease 1.1.0
* fix bug with moving root (ooops) * changes in work
This commit is contained in:
parent
4ed7bc7f90
commit
c50b0a1bcd
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
qdtest/*
|
@ -20,7 +20,7 @@ func_help() {
|
|||||||
func_ver() {
|
func_ver() {
|
||||||
echo -e " queued "
|
echo -e " queued "
|
||||||
echo -e "Simple daemon for starting jobs to queue of calculations"
|
echo -e "Simple daemon for starting jobs to queue of calculations"
|
||||||
echo -e "Version : 1.0.0 License : GPLv3"
|
echo -e "Version : 1.1.0 License : GPLv3"
|
||||||
echo -e "Author : Evgeniy Alexeev aka arcanis"
|
echo -e "Author : Evgeniy Alexeev aka arcanis"
|
||||||
echo -e "E-mail : esalexeev (at) gmail.com"
|
echo -e "E-mail : esalexeev (at) gmail.com"
|
||||||
exit 0
|
exit 0
|
||||||
@ -100,6 +100,9 @@ if [ ! -d "$(dirname "$QUEUEFILE")" ]; then
|
|||||||
fi
|
fi
|
||||||
echo "[II]: Create directory '$(dirname "$QUEUEFILE")'"
|
echo "[II]: Create directory '$(dirname "$QUEUEFILE")'"
|
||||||
mkdir -m777 -p "$(dirname "$QUEUEFILE")" || (echo "[EE] Unknown error"; exit 1)
|
mkdir -m777 -p "$(dirname "$QUEUEFILE")" || (echo "[EE] Unknown error"; exit 1)
|
||||||
|
echo "[II]: Create file '$QUEUEFILE'"
|
||||||
|
touch "$QUEUEFILE" || (echo "[EE] Unknown error"; exit 1)
|
||||||
|
chmod 777 "$QUEUEFILE"
|
||||||
fi
|
fi
|
||||||
# check priority
|
# check priority
|
||||||
isnum "$PRIORITY" || (echo "[EE]: '$PRIORITY' isn't a number"; exit 1)
|
isnum "$PRIORITY" || (echo "[EE]: '$PRIORITY' isn't a number"; exit 1)
|
||||||
@ -108,7 +111,6 @@ isnum "$PRIORITY" || (echo "[EE]: '$PRIORITY' isn't a number"; exit 1)
|
|||||||
# work block
|
# work block
|
||||||
# change cwd
|
# change cwd
|
||||||
cd /
|
cd /
|
||||||
# output to /dev/null
|
|
||||||
< /dev/null > /dev/null 2>&1 &
|
< /dev/null > /dev/null 2>&1 &
|
||||||
|
|
||||||
# forking
|
# forking
|
||||||
@ -130,30 +132,7 @@ cd /
|
|||||||
CURJOB_PRIOR="$PRIORITY"
|
CURJOB_PRIOR="$PRIORITY"
|
||||||
fi
|
fi
|
||||||
echo "[II] Setting priority to '$CURJOB_PRIOR'"
|
echo "[II] Setting priority to '$CURJOB_PRIOR'"
|
||||||
if [ ! -e "$QUEUEFILE" ]; then
|
echo "$CURJOB_PRIOR==$WORKDIR/$FILE" >> "$QUEUEFILE"
|
||||||
echo "$CURJOB_PRIOR==$WORKDIR/$FILE" > "$QUEUEFILE"
|
|
||||||
chmod 777 "$QUEUEFILE"
|
|
||||||
else
|
|
||||||
if [[ $(cat "$QUEUEFILE") = "" ]]; then
|
|
||||||
echo "$CURJOB_PRIOR==$WORKDIR/$FILE" >> "$QUEUEFILE"
|
|
||||||
else
|
|
||||||
LASTLINE=""
|
|
||||||
for JOB in $(cat "$QUEUEFILE"); do
|
|
||||||
JOB_PRIOR=$(echo "$JOB" | awk -F "==" '{print $1}')
|
|
||||||
if [[ $JOB_PRIOR < $CURJOB_PRIOR ]]; then
|
|
||||||
LASTLINE="$JOB"
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
if [ -z "$LASTLINE" ]; then
|
|
||||||
sed -i '1i '"$CURJOB_PRIOR==$WORKDIR/$FILE" "$QUEUEFILE"
|
|
||||||
else
|
|
||||||
sed -i '/'$LASTLINE'/a '"$CURJOB_PRIOR==$WORKDIR/$FILE" "$QUEUEFILE"
|
|
||||||
fi
|
|
||||||
break
|
|
||||||
done
|
|
||||||
grep --quiet "$WORKDIR/$FILE" "$QUEUEFILE" || echo "$CURJOB_PRIOR==$WORKDIR/$FILE" >> "$QUEUEFILE"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
# check running job
|
# check running job
|
||||||
@ -165,15 +144,21 @@ cd /
|
|||||||
|
|
||||||
# running job
|
# running job
|
||||||
if [ "$CALC" = "0" ]; then
|
if [ "$CALC" = "0" ]; then
|
||||||
(
|
CURJOB_PRIOR=$(head -1 "$QUEUEFILE" | awk -F "==" '{print $1}')
|
||||||
CURJOB=$(tail -1 "$QUEUEFILE" | awk -F "==" '{print $2}')
|
CURJOB=$(head -1 "$QUEUEFILE" | awk -F "==" '{print $2}')
|
||||||
[ -z "$CURJOB" ] && break
|
for JOB in $(cat "$QUEUEFILE"); do
|
||||||
sed -i '$d' "$QUEUEFILE"
|
if [[ "$(echo "$JOB" | awk -F "==" '{print $1}')" > "$CURJOB_PRIOR" ]]; then
|
||||||
[ -e "$CURJOB".user ] && CUR_USER="$(cat "$CURJOB".user)" || CUR_USER="$STARTASUSER"
|
CURJOB_PRIOR=$(echo "$JOB" | awk -F "==" '{print $1}')
|
||||||
mv "$CURJOB"* "$JOBDIR/" 2> /dev/null || break
|
CURJOB=$(echo "$JOB" | awk -F "==" '{print $2}')
|
||||||
echo "[II] Running job '$CURJOB'"
|
fi
|
||||||
su -c "/bin/sh "$JOBDIR/$(basename "$CURJOB")" &> "$JOBDIR/$(basename "$CURJOB")".log" $CUR_USER &
|
done
|
||||||
)
|
[ -e "$CURJOB".user ] && CURJOB_USER="$(cat "$CURJOB".user)" || CURJOB_USER="$STARTASUSER"
|
||||||
|
sed '/'"$(basename "$CURJOB")"'/d' -i "$QUEUEFILE"
|
||||||
|
if [ -z "$CURJOB" ]; then
|
||||||
|
echo "[II] You haven't job"
|
||||||
|
else
|
||||||
|
mv "$CURJOB"* "$JOBDIR/" && (echo "[II] Running job '$CURJOB' (priority '$CURJOB_PRIOR') as '$CURJOB_USER'"; su -c "/bin/sh "$JOBDIR/$(basename "$CURJOB")" &> "$JOBDIR/$(basename "$CURJOB")".log" $CURJOB_USER ) || echo "[WW] Missing files for job '$CURJOB'"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
echo "[II] You have a running job"
|
echo "[II] You have a running job"
|
||||||
fi
|
fi
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
## Configuration file for queued
|
## Configuration file for queued
|
||||||
## Paths
|
## Paths
|
||||||
# path to directory with source jobs
|
# path to directory with source jobs
|
||||||
WORKDIR=/home/arcanis/qdwork
|
#WORKDIR=/var/lib/queued/work
|
||||||
# path to directory with running jobs
|
# path to directory with running jobs
|
||||||
JOBDIR=/home/arcanis/qdjob
|
#JOBDIR=/var/lib/queued/job
|
||||||
# path to file with queue list
|
# path to file with queue list
|
||||||
QUEUEFILE=/home/arcanis/qdlist
|
#QUEUEFILE=/var/lib/queued/queue
|
||||||
|
|
||||||
## Additional parametrs
|
## Additional parametrs
|
||||||
# default priority
|
# default priority
|
||||||
PRIORITY=0
|
#PRIORITY=0
|
||||||
# start as user
|
# start as user
|
||||||
STARTASUSER=arcanis
|
#STARTASUSER=root
|
||||||
|
Loading…
Reference in New Issue
Block a user