7 # ----------------------------------------------------------------------------------------
8 # Simple desktop batch queue processor.
10 # The batch queue is defined by a standard FIFO and
11 # the entries in the queue are processed line-by-line.
12 # Each entry is executed as a separate process in the background,
13 # commonly referred to as a job.
14 # The number of jobs that can simultaneously run is limited by the queue size.
15 # The batch queue can be terminated by submitting a job with contents "exit".
17 # The batch queue may also be an existing regular file.
18 # The entries in the queue are processed as normal but
19 # the batch queue will terminate when the end-of-file is reached.
21 # A job can be submitted using the puts_queue function (see qlib.sh or qlib.csh).
22 # A series of joint commands can be submitted using a sequence of
23 # calls to put_queue, terminated by a single puts_queue call.
24 # ----------------------------------------------------------------------------------------
26 if [ -z $JPP_DIR ];
then
27 echo "Variable JPP_DIR undefined."
31 source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/
null
41 print -u2
"$script [queue name [queue size]] <option>"
42 print -u2
"Possible options: start, stop, continue, restart."
50 *) fatal
"Wrong number of options.";;
53 if ( is_CCLyon );
then
54 fatal
"This batch queue processor is intended for use on a desktop."
57 if (( $QUEUE_SIZE < 1 ));
then
58 fatal
"Invalid queue size $QUEUE_SIZE."
62 fatal
"Invalid option $OPTION."
65 if [[
$OPTION ==
"stop" || $OPTION ==
"restart" ]];
then
67 PID=(`get_pid $COMMAND`)
71 if [[ -
n $PID ]];
then
72 notice
"Stop $COMMAND."
76 rm -
f $QUEUE_NAME #
remove FIFO
80 elif [[ $OPTION ==
"continue" ]];
then
82 PID=(`get_pid $COMMAND`)
86 if [[ -
n $PID ]];
then
87 notice
"$script is running with PID(s) $PID"
94 if [[ $OPTION =
"start" ]];
then
96 notice
"Start batch queue ${QUEUE_NAME} >& ${QUEUE_NAME}_log"
98 trap
"" HUP # trap hangup
100 queue $QUEUE_NAME $QUEUE_SIZE $SLEEP_TIME >& ${QUEUE_NAME}_log &
then usage $script< detector >< run >< outputfile > fi case set_variable OPTION
then echo Enter input within $TIMEOUT_S seconds echo n User name
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable
*set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2,-2] set_variable OUTPUT_FILE $argv[-1]
alias put_queue eval echo n
then usage $script< input_file >< detector_file > fi set_variable OUTPUT_DIR set_variable SELECTOR JDAQTimesliceL1 set_variable DEBUG case set_variable DEBUG
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY source JAcoustics sh $DETECTOR_ID CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
*fatal Wrong option $OPTION
esac $JPP_BIN JLogger sh $LOGGER until pgrep JGetMessage</dev/null > dev null