diff -u etc/rc.d/tinderd.orig etc/rc.d/tinderd --- etc/rc.d/tinderd.orig 2008-12-05 18:21:16.402721853 +0300 +++ etc/rc.d/tinderd 2008-12-06 01:08:58.000000000 +0300 @@ -24,6 +24,7 @@ : ${tinderd_directory="/space/scripts"} : ${tinderd_flags=""} : ${tinderd_debug="NO"} +: ${tinderd_instances="1"} # path to your executable, might be libexec, bin, sbin, ... command="${tinderd_directory}/tinderd" @@ -39,4 +40,13 @@ command_args=">/dev/null &" fi +start_cmd="${name}_start" + +tinderd_start() +{ + for i in `jot - 1 ${tinderd_instances}`; do + ${command} ${tinderd_flags} >/dev/null 2>&1 & + done +} + run_rc_command "$1" diff -u scripts/tinderd.orig scripts/tinderd --- tinderd.orig 2008-12-05 18:21:16.412782070 +0300 +++ tinderd 2008-12-06 01:36:56.435417070 +0300 @@ -19,7 +19,22 @@ do trap "" 1 - ENTRY=$(${pb}/scripts/tc listBuildPortsQueue -s ENQUEUED -r | head -1) + ENTRY="" + + if mkdir /tmp/tinderdlock >/dev/null 2>&1; then + ${pb}/scripts/tc listBuildPortsQueue -s ENQUEUED -r > /tmp/tinderd.$$ + while read line; do + BUILD=$(echo ${line} | cut -d: -f3) + if [ ! -f $pb/builds/$BUILD/tinderdlock -a ! -f $pb/builds/$BUILD/lock ]; then + touch $pb/builds/$BUILD/tinderdlock + ENTRY=$line + break + fi + done < /tmp/tinderd.$$ + rm /tmp/tinderd.$$ + rmdir /tmp/tinderdlock + fi + ID=$(echo ${ENTRY} | cut -d: -f1) USER=$(echo ${ENTRY} | cut -d: -f2) BUILD=$(echo ${ENTRY} | cut -d: -f3) @@ -52,6 +67,7 @@ ${pb}/scripts/tc reorgBuildPortsQueue + rm $pb/builds/$BUILD/tinderdlock else tinderEcho "INFO: Nothing to do. Sleeping ${TINDERD_SLEEPTIME} seconds." trap main_loop 1