#!/bin/bash digit=$1 [ -z "$digit" ] && { touch core-count count=$(cat core-count) count=${count:-(-1)} count=$(( $count + 1 )) echo $count > core-count digit=$(printf '%X' $count) user=$(cat core-user) ( cd ve$digit port=$(( 33400 + $count )) echo nsenter --net=/var/run/netns/vep$digit chpst -u $user ../$0 $digit $port > cmd0 exec nsenter --net=/var/run/netns/vep$digit chpst -u $user ../$0 $digit $port exit 1 ) } port=$2 addr=$(ip -o address show dev vep$digit | sed -n 's#.* inet \([^ /]*\).*#\1#p') echo $addr pwd whoami # Usage (connected) : ./DHT_bootstrap [--ipv4|--ipv6] IP PORT KEY # Usage (unconnected): ./DHT_bootstrap [--ipv4|--ipv6] if [ "$digit" = 0 ] then echo $$ > pid echo ../DHT_bootstrap > cmd.txt echo $addr > addr.txt { sleep 0.5 echo IP: $addr >> PUBLIC_ID.txt } & exec ../DHT_bootstrap else vars='{ if( boot_key == "" ) { boot_key=$0 ; print("boot_key=" boot_key) } else if( $1 == "Port:" ) print("boot_port=" $2); else if( $1 == "IP:" ) print("boot_ip=" $2); }' boot_ip= boot_port= boot_key= awk "$vars" ../ve0/PUBLIC_ID.txt > vars.txt 2>&1 . vars.txt echo ../DHT_bootstrap $boot_ip $boot_port $boot_key > cmd.txt echo $$ > pid echo $addr > addr.txt { sleep 0.5 echo IP: $addr >> PUBLIC_ID.txt } & exec ../DHT_bootstrap $boot_ip $boot_port $boot_key fi sleep 30