2022-01-28 16:30:39 +01:00
|
|
|
#!/bin/bash
|
|
|
|
# This job script takes a nap for 10 seconds (or paramter $2) every 30 minutes (or paramter $1)
|
|
|
|
|
|
|
|
# SGE options
|
|
|
|
#$ -N PSleeper
|
|
|
|
#$ -l scf=1M,mem=100M,h_vmem=100M
|
|
|
|
#$ -q normal.q
|
|
|
|
#$ -cwd
|
|
|
|
|
|
|
|
# process args
|
|
|
|
case "$1" in
|
|
|
|
-h)
|
|
|
|
echo "usage: $0 [-h | [-d] [T] [nap]]"
|
|
|
|
echo "periodically take a nap"
|
|
|
|
echo ""
|
|
|
|
echo "-h print this help and exit"
|
|
|
|
echo "-d print debug info"
|
|
|
|
echo "T take a nap every T minutes (default: 30)"
|
|
|
|
echo "nap take a nap for nap seconds (default: 10)"
|
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
debug=0
|
|
|
|
terse="-terse"
|
|
|
|
debug_flag=""
|
|
|
|
do_echo=0
|
|
|
|
T=30
|
|
|
|
nap=10
|
|
|
|
while (( "$#" )); do
|
|
|
|
case "$1" in
|
|
|
|
-d)
|
|
|
|
debug=1
|
|
|
|
terse=""
|
|
|
|
debug_flag="-d"
|
|
|
|
do_echo=1
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
T=${1:-30}
|
|
|
|
nap=${2:-10}
|
|
|
|
break
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
shift
|
|
|
|
done
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
# set other variables
|
|
|
|
next=$(date -d "${T} minutes" +%Y%m%d%H%M)
|
2024-08-26 17:52:43 +02:00
|
|
|
script=$0
|
2022-01-28 16:30:39 +01:00
|
|
|
|
|
|
|
# output some informations
|
|
|
|
if [ ${debug} -eq 1 ]; then
|
|
|
|
echo "T = ${T}, nap=${nap}"
|
|
|
|
echo "next run at ${next} (YYYYMMDDhhmm)"
|
|
|
|
echo "debug_flag = ${debug_flag}, do_echo = ${do_echo}"
|
|
|
|
echo ""
|
|
|
|
fi
|
|
|
|
|
|
|
|
# commands to run in Grid Engine
|
2024-08-26 17:52:43 +02:00
|
|
|
${script} ${nap} ${do_echo}
|
2022-01-28 16:30:39 +01:00
|
|
|
|
|
|
|
# re-submit script to execute in T minutes
|
|
|
|
jobid=$(qsub ${terse} -a ${next} ${script} ${debug_flag} ${T} ${nap})
|
|
|
|
exit_code=$?
|
|
|
|
if [ ${debug} -eq 1 ]; then
|
|
|
|
echo "${jobid}"
|
|
|
|
fi
|
|
|
|
if [ ${exit_code} -ne 0 ]; then
|
|
|
|
if [ ${debug} -eq 1 ]; then
|
|
|
|
echo "${jobid}"
|
|
|
|
echo "Ups, something went wrong, check output!"
|
|
|
|
fi
|
|
|
|
exit ${exit_code}
|
|
|
|
fi
|