px6/px6_send.sh
2025-01-01 18:17:36 +01:00

32 lines
696 B
Bash
Executable file

#! /usr/bin/env nix-shell
#! nix-shell -i bash -p bash bc
IP="$1"
PORT="$2"
PROCS="$3"
FILE="$4"
PROCMAXTIME=60
MAINPID=$$
PGID=$(ps -o pgid= $MAINPID | grep -oe "[0-9]*")
do_exit() {
kill -9 -$PGID
}
trap do_exit SIGINT SIGTERM
for i in $(seq 1 $PROCS); do
(
THISPID=$BASHPID
# ( while kill -0 $MAINPID; do sleep 1; done; do_exit ) &
while true; do
(
THISPID2=$BASHPID
( sleep $PROCMAXTIME; kill -9 $THISPID2 >/dev/null 2>&1 ) &
echo "starting $i / $PROCS"
( while kill -0 $THISPID2; do cat "$FILE"; done ) > /dev/tcp/$IP/$PORT 2>&1
) >/dev/null 2>&1
done
) &
# sleep $(echo "scale=2; ($PROCMAXTIME/$PROCS) + 1" | bc)
done
while true; do sleep 9999999; done