# HG changeset patch # User Henry S. Thompson # Date 1542652350 0 # Node ID 9275e2a8b5e2f431e2b8a8e9ef9ea02185051304 # Parent 2bde174fe9e2b6acdc248247f89637952d31fac6 hacking to get id into wbash.sh, maybe buggy? diff -r 2bde174fe9e2 -r 9275e2a8b5e2 master/bin/internal/invoke.sh --- a/master/bin/internal/invoke.sh Mon Nov 19 18:31:21 2018 +0000 +++ b/master/bin/internal/invoke.sh Mon Nov 19 18:32:30 2018 +0000 @@ -1,11 +1,20 @@ #!/bin/bash # Helper for ../wrun, q.v. -# Usage: invoke.sh [-x] me cmd ifile id port ip [args...] +# Usage: invoke.sh [-d] [-w] [-x] me cmd ifile id port ip [args...] # Runs # cmd [id] args... # via ssh to ip:port # If ifile is not /dev/null, feed in as stdin +# If -d, echo command line to stderr +# If -w, wrap command in nohup and wait for result # Unless -x, worker id is passed as first arg +echo $@ 1>&2 +echo "$@" 1>&2 +if [ "$1" = "-d" ] +then + shift + debug=1 +fi if [ "$1" = "-w" ] then shift @@ -14,18 +23,18 @@ if [ "$1" = "-x" ] then shift - id= + tellid= me= else me=$1 - id=$4 + tellid=$4 fi cmd="$2" ifile=$3 port=$5 ip=$6 shift 6 -echo "#$(date)#$cmd#$ifile#$id#$port#$ip#$@#" 1>&2 +echo "#$(date)#$cmd#$ifile#$tellid#$port#$ip#$@#" 1>&2 if [ "$ifile" != "/dev/null" ] then echo "# from $ifile" 1>&2 @@ -33,8 +42,13 @@ fi || echo scp failed, status=$? 1>&2 if [ "$wait" ] then - ssh -tt -p $port $ip "nohup $cmd $id $me ""$@"" > nohup.cc" + cs="nohup $cmd $tellid $me "$@" > nohup.cc" else - ssh -p $port $ip "$cmd $id $me ""$@" -fi || echo ssh failed, status=$? 1>&2 + cs="$cmd $tellid $me ""$@" +fi +if [ "$debug" ] +then + echo ssh -tt -p $port $ip $cs 1>&2 +fi +ssh -tt -p $port $ip "$cs" || echo ssh failed, status=$? 1>&2 echo "#$(date)#$id#" 1>&2 diff -r 2bde174fe9e2 -r 9275e2a8b5e2 master/bin/wbash.sh --- a/master/bin/wbash.sh Mon Nov 19 18:31:21 2018 +0000 +++ b/master/bin/wbash.sh Mon Nov 19 18:32:30 2018 +0000 @@ -2,16 +2,25 @@ if [ $# -lt 1 ] then cat 1>&2 <&2; sleep 1; done - echo 1>&2 + tee >(wc -l 1>&2) | split -n r/$np -u --filter="cat > $tfile\$\$" $file wc -l ${tfile}* 1>&2 elif [ "$1" = "-ff" ] then @@ -83,6 +85,6 @@ while read i ip port do echo $i $port $ip - done) | \ - parallel --gnu --colsep ' ' -j $np "$(dirname "$0")"/internal/invoke.sh $wait $id $me "$cmd" {} "$@" || { r=$? ; echo parallel exited with status=$r 1>&2;} -if [ "${tfile}" ]; then rm ${tfile}*; fi + done) | tee /tmp/test.txt | \ + parallel --gnu --colsep ' ' -j $np "$(dirname "$0")"/internal/invoke.sh $debug $wait $xx $me "$cmd" {} "$@" || { r=$? ; echo parallel exited with status=$r 1>&2;} +#if [ "${tfile}" ]; then rm ${tfile}*; fi